WPF应用启动问题

标签 wpf xaml startup

我的大脑现在到处都是试图完全理解 Unity。所以我决定深入研究并开始将它添加到一个分支中,看看它会把我带到哪里。令人惊讶的是(或者可能不是),我只是让我该死的应用程序正确加载。

似乎正确的方法是覆盖 App.cs 中的 OnStartup。我已从 App.xaml 中删除了我的 StartupUri,因此它不会创建我的 GUI XAML。我的 App.cs 现在看起来像这样:

public partial class App : Application
{
    private IUnityContainer container { get; set; }

    protected override void OnStartup(StartupEventArgs e)
    {
        container = new UnityContainer();
        GUI gui = new GUI();
        gui.Show();
    }

    protected override void OnExit(ExitEventArgs e)
    {
        container.Dispose();
        base.OnExit(e);
    }
}

问题是当我启动应用程序时没有任何 react !我在 container 处放置了一个断点分配,它永远不会被击中。

我错过了什么? App.xaml 当前设置为 ApplicationDefinition,但我希望它可以工作,因为我正在查看的一些示例 Unity + WPF 代码 ( from Codeplex ) 执行完全相同的操作,只是它可以工作!

我还通过单步启动了该应用程序,它最终到达了 App.xaml 中的第一行。当我进入这一行时,应用程序刚刚开始“运行”,但我什么也没看到(而且我的断点没有被击中)。如果我在示例应用程序中做完全相同的事情,进入 App.xaml 会让我直接进入 OnStartup,这正是我期望发生的。啊!

我还刚刚从头开始创建了一个新的 WPF 应用程序,删除了 StartupUri,覆盖了 OnStartup(),它也可以工作。什么?

将 Unity 构造放在我的 GUI 的 Window_Loaded 事件处理程序中是一件坏事吗?真的需要在App层面吗?

最佳答案

仔细检查 App.xaml 中的 x:Class 是否与 App.xaml.cs 中的 namespace /类相同。从另一个项目复制/粘贴很容易忘记修改它。

如果由于任何原因您无法解决此问题,请删除 App.xaml 并添加 Main()这是一个 new App().Run() .如果这也不起作用,那么这里真的很奇怪。

关于WPF应用启动问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2874920/

相关文章:

wpf - 更新 wpf 数据网格的 SelectedeRow 值的 GUI

c# - 什么是白标 dll 的好方法

c# - 在ListView中选择时更改UserControl的样式

liferay-6 - 如何减少 Liferay 6 启动时间

c# - 绑定(bind)到附加行为

c# - 为什么选项卡标题显示在 XAML TabControl 中选项卡的内容区域中?

visual-studio - 编辑 XAML 代码时 Visual Studio 2008 卡住

Centos7 SystemD - Systemctl 启动问题

c++ - 添加需要管理员才能启动的程序

c# - 如何从 MahApps.Metro 将带有操作的按钮添加到 ShowInputAsync