【问题标题】:Hello World [WPF]你好世界 [WPF]
【发布时间】:2009-07-18 16:48:45
【问题描述】:

我正在尝试在 WPF 中创建我的 hello world windows 应用程序。

我应该怎么做才能运行这个窗口?

Class1.xaml

<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>

App.xaml

<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>

程序.cs

class Program
    {
        [STAThread]
        public static void Main()
        {
            new App().Run();
        }
    }

我创建了一个空白 sln 并添加了这三个文件。我还添加了 WindowsBase、PresentationBase、PresentationFramework 参考。

但应用程序没有运行。

有什么问题?

【问题讨论】:

    标签: c# .net wpf windows


    【解决方案1】:

    创建一个新的 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 中是相同的。

    【讨论】:

      【解决方案2】:

      如果您要使用Main 方法,您的 App.xaml 文件将被忽略。

      App.xaml 仅在您将其构建操作设置为ApplicationDefinition 时使用。执行此操作时,您会注意到编译器错误,因为您的程序中有两个入口点——因此您将不得不丢失 Main 方法。

      如果你想保留你的Main 方法,你可以。不要更改 App.xaml 上的 Build Action(实际上,我认为您可以将其删除),并执行以下操作:

      [STAThread]
      public static void Main()
      {
          App app = new App();
          app.StartupUri = new System.Uri("/Project1;component/Class1.xaml", System.UriKind.Relative);                     
          app.Run();
      }
      

      /Project1 替换为您的命名空间。

      【讨论】:

        【解决方案3】:

        使用 WPF 项目?

        【讨论】:

          猜你喜欢
          • 2021-11-19
          • 2015-01-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-31
          • 2013-03-13
          相关资源
          最近更新 更多