您的位置:首页 > 其它

WPF实现单进程实例应用程序(像Word一样可以打开多个文件)

2016-09-26 19:50 543 查看
第一步

新建一个WPF应用程序,取名WPFSingleInstance

第二步

项目中添加引用:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\Profile\Client\Microsoft.VisualBasic.dll

第三步:

在MainWindow中添加个一个Button,用来显示

第四步:

新建一个文件,并重新命名名称空间,并添加如下代码:

namespace MyAppStartup
{
public class Startup
{
[STAThread]
public static void Main(string[] args)
{
SingleInstanceApplicationWrapper wrapper = new SingleInstanceApplicationWrapper();
wrapper.Run(args);
}
}

public class SingleInstanceApplicationWrapper : WindowsFormsApplicationBase
{
private App app; // The actual WPF Application

private  int Num=0;

public SingleInstanceApplicationWrapper()
{
this.IsSingleInstance = true;
}

// The first open
protected override bool OnStartup(Microsoft.VisualBasic.ApplicationServices.StartupEventArgs e)
{
app = new App();

MainWindow win = new MainWindow();
win.Title = Num.ToString();
app.Run(win);
return false;
}

// The next open
protected override void OnStartupNextInstance(StartupNextInstanceEventArgs e)
{
Num += 1;
MainWindow win = new MainWindow();
win.Title = Num.ToString();
win.Show();
}
}

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


第五步:

右键项目属性->Application->Startup Object下拉菜单选择MyAppStartup.Startup

第六步:

Build,然后生成exe文件,打开exe,会产生一个窗口,再双击exe文件,又产生一个窗口,但是你在任务管理器中查看,只有一个进程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐