惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
Apple Machine Learning Research
Apple Machine Learning Research
IT之家
IT之家
阮一峰的网络日志
阮一峰的网络日志
雷峰网
雷峰网
S
SegmentFault 最新的问题
量子位
有赞技术团队
有赞技术团队
V
V2EX
宝玉的分享
宝玉的分享
Hugging Face - Blog
Hugging Face - Blog
B
Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Jina AI
Jina AI
C
Check Point Blog
G
Google Developers Blog
博客园 - 叶小钗
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园_首页
T
Tailwind CSS Blog
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
酷 壳 – CoolShell
酷 壳 – CoolShell
U
Unit 42

博客园 - 昨夜飘风

WPF 通过共享内存播放视频 C# 模拟网页拖拽 wpf 自定义ContextMenu样式,可以调节ContextMenu的宽度 Oracle 开发经验 WPF跑马灯效果 android私有文件夹的访问 [转]C#内存操作 C#串口发送接受数据 C# 制作外挂常用的API silverlight 动画 性能优化 SilverLight 动画缓冲(Animation Easing) - 昨夜飘风 体面地处理程序的未捕获异常 C# 访问USB(HID)设备 收藏一个地址(居然说我标题已经存在) 收藏一个地址 (2009-06-24) SqlCommandBuilder使用的注意事项 助睡眠音乐 (2009-06-22) 班德瑞官方试听网站 (2009-06-18)今日收获 工厂方法 (2009-06-17)今日收获-只读列隐藏-win2003 dll文件下载
.net4.0中wpf单例启动
昨夜飘风 · 2012-12-04 · via 博客园 - 昨夜飘风

添加Microsoft.VisualBasic引用,头引用

using Microsoft.VisualBasic.ApplicationServices;

打开App.xaml.cs文件,将文件修改为如下

class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            SingleInstanceApp a = new SingleInstanceApp();
            a.Run(args);
        }
    }

    /// <summary>
    /// App.xaml 的交互逻辑
    /// </summary>
    public partial class App : System.Windows.Application
    {
        protected override void OnStartup(System.Windows.StartupEventArgs e)
        {
            base.OnStartup(e);
            InitializeComponent();
        }
    }

    public class SingleInstanceApp : WindowsFormsApplicationBase
    {
        App win = null;
        public SingleInstanceApp()
        {
            this.IsSingleInstance = true;
        }

        protected override bool OnStartup(Microsoft.VisualBasic.ApplicationServices.StartupEventArgs eventArgs)
        {
            win = new App();
            win.Run();
            return false;
        }

        protected override void OnStartupNextInstance(StartupNextInstanceEventArgs eventArgs)
        {
            foreach (System.Windows.Window _win in win.Windows)
            {
                if (_win.Visibility == System.Windows.Visibility.Visible)
                {
                    _win.Activate();
                }
            }
        }
    }

  编译下,vs会告知有2个入口函数,定位到App.g.cs的main函数,直接删除掉就可以了~~以上代码通用,无需修改任何东西..当然,要写入自己的个性需求则自己改~~