WPF MainWindow覆盖OnStartup

时间:2014-02-11 20:13:28

标签: c# wpf

如果不使用StartupUri,我无法显示我的MainWindow。 OnStartup不会触发。

我从App.xaml

中删除了StartupUri
<Application x:Class="SCon"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
</Application>

背后的代码中添加了以下内容
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
        SCon.MainWindow.Instance.Show();
    }

MainWindow是一个单身人士

    private static volatile MainWindow instance = null;
    private static object lockThis = new object();
    public static MainWindow Instance
    {
        get
        {
            if (instance == null)
            {
                lock (lockThis)
                {
                    if (instance == null)
                    {
                        instance = new MainWindow();
                    }
                }
            }
            return instance;
        }
    }

2 个答案:

答案 0 :(得分:2)

Idk你的意思或你坚持的地方。我会检查App.xaml的Build Actions然后我会看看这个网站。

http://www.erikojebo.se/Code/Details/202

那家伙解释得非常好:)

此外,您的问题有点重复。看看这个:How to change StartupUri of WPF Application?

答案 1 :(得分:1)

您需要将以下行放在XAML文件中:

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

这就是它没有触发OnStartup方法的原因。