WPF實現單程序例項應用程式(像Word一樣可以開啟多個檔案)
阿新 • • 發佈:2019-01-24
第一步
新建一個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檔案,又產生一個視窗,但是你在工作管理員中檢視,只有一個程序。