c#WPF无法设置启动

时间:2013-12-16 08:34:12

标签: c# wpf visual-studio-2010 startup

我在WPF中有项目。

问题是,当我将App.xaml文件移动到子文件夹时,它不想编译,因为它找不到main方法。

如何强制Project启动应用程序,并在App.xaml文件中设置窗口作为StartUp Window?

我使用Visual Studio 2010 express。

编辑:

我的App.xaml

<Application x:Class="TraceabilityLoader.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="View/VmainWindow.xaml">
    <Application.Resources>

    </Application.Resources>
</Application>

项目中的子文件夹:

查看,模型,ViewModel等....

4 个答案:

答案 0 :(得分:5)

我使用OnStartup使用自定义启动窗口解决此问题: App.xaml中

<Application x:Class="Pin.Visualisation.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             Startup="OnStartup">
    <Application.Resources>

    </Application.Resources>
</Application>

App.xaml.cs

namespace Pin.Visualisation
{
    public partial class App : Application
    {
        private void OnStartup(object sender, StartupEventArgs e)
        {
            var view = new MainWindow();
            view.Show();
        }
    }
}

我的MainWindow存储在View / MainWindow中。它对你有用吗?

答案 1 :(得分:0)

包含主要方法(App.xamlApp.xaml.cs)的类必须位于启动项目的根目录中,才能自动检测它们。

如果您希望它们位于子文件夹中,则必须手动指定启动对象:

  1. 右键单击项目
  2. 导航至“应用程序设置”标签
  3. 从启动对象下拉列表中选择。
  4. 按照惯例,您的启动对象确实应该在根目录中。

答案 2 :(得分:0)

如果您只是想将App.xaml移动到子文件夹,因为您想组织结构。您可以将命名空间保留在第一级。

namespace WpfApplication3 <-----
{
    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {
    }
}

如果不是,你必须像@Gusdor那样做

答案 3 :(得分:0)

好的,我找到了解决问题的方法。 将App.xaml移动到其他文件夹后,visual studio将Build Action从应用程序定义更改为Page。 改回来解决问题。