日期:2014-05-20  浏览次数:20992 次

WPF的Application.Startup事件
我打算将特定的扩展名关联到自己写的WPF程序,通过双击该类型文件,然后打开该文件,我查了一下MSDN,在App.xaml里面加入 

Startup="App_Startup"

然后我的App.xaml.cs是这样写的


using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;

namespace ChineseChess
{
    /// <summary>
    /// App.xaml 的交互逻辑
    /// </summary>
    public partial class App : Application
    {
        void App_Startup(object sender, StartupEventArgs e)
        {
            if (e.Args.Length == 1)
            {
                MessageBox.Show(e.Args[0]);
            }
            MainWindow mainWindow = new MainWindow();
            mainWindow.Show();
        }
    }
}


运行结果是,直接打开程序没有问题。双击关联扩展名的文件后,弹出的MessageBox可以显示参数文件的地址,但是不会再显示MainWindow主窗口,任务管理器里面也没有应用程序的进程,想必是某种原因直接或者因为异常退出了。

另外在命令行窗口中输入 程序名+文件名参数,可以显示MessageBox,也可以显示主窗口,貌似是关联打开方式的问题。

请问为什么会这样呢?
------解决方案--------------------
我也遇到了这个问题,刚开始学习WPF