我有一个非常基本的自定义App.xaml文件,其构建操作设置为Page
,如下所示:
<root:TestApp x:Class="WpfApplication1.App"
xmlns:root="clr-namespace:WpfApplication1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
StartupUri="MainWindow.xaml" />
应用程序的入口点(在App.xaml.cs中)如下所示:
public partial class App : TestApp
{
[STAThread]
public static void Main(string[] args)
{
var app = new App();
app.InitializeComponent();
app.Run();
}
}
在app.Run()
上设置断点显示StartupUri为空,这使我认为对app.InitializeComponent()
的调用失败(特别是System.Windows.Application.LoadComponent(this, resourceLocater);
)
任何人都可以提供任何想法吗?没有抛出异常,它似乎没有加载我的xaml文件中的任何值。
答案 0 :(得分:1)
当构建操作为InitializeComponent()
而非Page
时,App类的生成ApplicationDefinition
方法会完全不同。
特别是它错过了这条线
this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
而不是(或除了)调用InitializeComponent()
,您可以直接设置StartupUri
:
public partial class App : TestApp
{
[STAThread]
public static void Main()
{
var app = new App();
app.InitializeComponent(); // optional?
app.StartupUri = new Uri("MainWindow.xaml", UriKind.Relative);
app.Run();
}
}