WPF单例启动及利用单例制作类似WORD打开文档选项卡效果
2021-05-11 01:29
标签:start tab 需要 空间 current mic 文件打开 sharp var 文章目的如下: 1.WPF应用同时只允许运行一个实例 2.利用这个单例特性实现类似Word等多选项卡打开的效果 3.示例代码下载 废话不多说直接正题。 1.引用程度集 Microsoft.VisualBasic 2.移除App.XAML 3.创建类 MyWPFApp.cs 继承 System.Windows.Application 自定义一个 Application 2.创建类 SingleAppInsWrapper.cs 继承 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase 自定义一个包装类 this.IsSingleInstance = true 在重写 OnStartupNextInstance 中就可以处理当再有相同实例打开时的处理了(利用这个事件可扩展双击文件关联打开应用作出类似Office Word 打开多个文件选择卡的效果) 3.添加 Startup.cs 类作为应用入口(到这步为止单例需要的基本完成) 以下开始则为额外的扩展,制作一个双击文件打开应用展示文件,当应用已打开则在应用中添加新的选项卡打开文件,不关心这点的可以跳过。 4.修改 MainWindow.xaml 中内容为 5.修改MainWindow.xaml.cs 为 6.MyWPFApp.cs 中添加方法 7.SingleAppInsWrapper.cs 中的 OnStartupNextInstance内添加以下代码即可 最终演示效果如下 源码下载: https://files.cnblogs.com/files/nekoyzx/WPF.SingleIns.7z WPF单例启动及利用单例制作类似WORD打开文档选项卡效果 标签:start tab 需要 空间 current mic 文件打开 sharp var 原文地址:http://www.cnblogs.com/nekoyzx/p/7594162.html
public class MyWPFApp : Application
{
public MyWPFApp()
{
ConfigApp();
}
public MyWPFApp(List
///
///
///
public string OpenFilePath
{
get
{
if (OpenArgs.Count > 0)
return this.OpenArgs.First();
return string.Empty;
}
}
public void OpenDocWin(string filePath)
{
//这里的 MainWindow转换类型换成你的项目所在的命名空间
var mainWin = (WPF.SingleIns.MainWindow)this.MainWindow;
mainWin.SwitchOrAppendTab(filePath);
}
protected override void OnStartupNextInstance(Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs eventArgs)
{
var filepath = eventArgs.CommandLine.First();
//从这里实现当再有相同应用打开时的逻辑
this._myWPFApp.OpenDocWin(filepath);
}
上一篇:DOS和windows的区别?
下一篇:3、Python 数据解析【1】
文章标题:WPF单例启动及利用单例制作类似WORD打开文档选项卡效果
文章链接:http://soscw.com/index.php/essay/84190.html