我正在尝试将WPF应用程序中的MainWindow
位置从默认启动URI: MainWindow.xaml 更改为 视图\ 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块无效。它崩溃了,我无法捕获异常。
主要
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方法中的引用。
答案 0 :(得分:0)
要将MainWindow移动到Views文件夹(命名空间),您必须按照以下步骤操作
更改CMTime
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
文件夹
就是这样。
你先做/做哪一个并不重要,但你必须做所有这些。