[英]Hello World [WPF]
我正在尝试在WPF中创建我的hello world Windows应用程序。
我应该怎么做才能运行此窗口?
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid> </Grid>
</Window>
<Application x:Class="App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Class1.xaml" >
<Application.Resources>
</Application.Resources>
</Application>
class Program
{
[STAThread]
public static void Main()
{
new App().Run();
}
}
我创建了一个空白的sln并添加了这三个文件。 我还添加了WindowsBase,PresentationBase,PresentationFramework引用。
但是该应用程序未运行。
问题是什么?
创建新的WPF应用程序将是解决之道,但我可能知道修复它的一种方法。
您的项目文件当前可能具有如下所示的部分:
<Page Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
您需要将其更改为使用ApplicationDefinition
而不是Page
,类似于:
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
这样,您的项目应该知道在运行应用程序时实际开始什么。
我从中得到的解决方案是VS2010解决方案,但我认为在VS2008中是相同的。
使用WPF项目?
如果您要使用Main
方法,则您的App.xaml文件将被忽略。
仅当将Build Action的Build Action设置为ApplicationDefinition
才使用App.xaml。 执行此操作时,您会注意到遇到编译器错误,因为程序中有两个入口点,因此您将不得不丢失Main
方法。
如果要保留Main
方法,可以。 不要更改App.xaml上的“构建操作”(实际上,我认为您可以删除它),并执行以下操作:
[STAThread]
public static void Main()
{
App app = new App();
app.StartupUri = new System.Uri("/Project1;component/Class1.xaml", System.UriKind.Relative);
app.Run();
}
用您的名称空间替换/Project1
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.