System.TypeInitializationException 更改 MainWindow startupUri WPF 时
System.TypeInitializationException when changing MainWindow startupUri WPF
我正在尝试从默认启动 URI 更改 WPF 应用程序中的 MainWindow
位置:MainWindow.xaml 到 Views\MainWindow.xaml. 其中 Views
是在项目文件夹中创建的文件夹。
URI:this.StartupUri = new System.Uri(@"Views\MainWindow.xaml", System.UriKind.Relative);
我更改了 uri,然后应用程序因以下错误而中断:
An unhandled exception of type 'System.TypeInitializationException'occurred in PresentationFramework.dll
Additional information: The type initializer for 'System.Windows.Application' threw an exception.
我在 Main 方法、InitializeComponent 方法和 MainWindow 构造函数中放置了断点和 try-catch 块,没有 avail.It 崩溃,我无法捕获异常。
主线:
public static void Main() {
try
{
wpfTest.App app = new wpfTest.App();
app.InitializeComponent();
app.Run();
}catch(Exception ex)
{
Console.WriteLine(ex.InnerException.Message);
}
}
startupUri 是否也必须在其他地方更改?它只有一个参考:InitializeComponent 方法中的那个。
要将 MainWindow 移动到 Views 文件夹(命名空间),您必须按照以下步骤操作
更改 MainWindow.xaml
中的 class 名称
<Window x:Class="WpfApp1.Views.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
</Grid>
</Window>
修改MainWindow.xaml.cs
中的命名空间
namespace WpfApp1.Views
{
/// <summary>
/// Interaktionslogik für MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}
修改App.xaml
<Application x:Class="WpfApp1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApp1"
StartupUri="Views/MainWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>
移动 MainWindow.xaml
到 Views
文件夹
就是这样。
你做哪一个并不重要first/last,但你必须全部做。
我正在尝试从默认启动 URI 更改 WPF 应用程序中的 MainWindow
位置:MainWindow.xaml 到 Views\MainWindow.xaml. 其中 Views
是在项目文件夹中创建的文件夹。
URI:this.StartupUri = new System.Uri(@"Views\MainWindow.xaml", System.UriKind.Relative);
我更改了 uri,然后应用程序因以下错误而中断:
An unhandled exception of type 'System.TypeInitializationException'occurred in PresentationFramework.dll
Additional information: The type initializer for 'System.Windows.Application' threw an exception.
我在 Main 方法、InitializeComponent 方法和 MainWindow 构造函数中放置了断点和 try-catch 块,没有 avail.It 崩溃,我无法捕获异常。
主线:
public static void Main() {
try
{
wpfTest.App app = new wpfTest.App();
app.InitializeComponent();
app.Run();
}catch(Exception ex)
{
Console.WriteLine(ex.InnerException.Message);
}
}
startupUri 是否也必须在其他地方更改?它只有一个参考:InitializeComponent 方法中的那个。
要将 MainWindow 移动到 Views 文件夹(命名空间),您必须按照以下步骤操作
更改
中的 class 名称MainWindow.xaml
<Window x:Class="WpfApp1.Views.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfApp1" mc:Ignorable="d" Title="MainWindow" Height="350" Width="525"> <Grid> </Grid> </Window>
修改
MainWindow.xaml.cs
中的命名空间namespace WpfApp1.Views { /// <summary> /// Interaktionslogik für MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } } }
修改
App.xaml
<Application x:Class="WpfApp1.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApp1" StartupUri="Views/MainWindow.xaml"> <Application.Resources> </Application.Resources> </Application>
移动
MainWindow.xaml
到Views
文件夹
就是这样。
你做哪一个并不重要first/last,但你必须全部做。