wpf/silverlight 发表于 2013-1-3 15:36:52

通过 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase 实现 WPF

<div id="cnblogs_post_body">WPF 单例启动的例子,记一下。
参考 WPF Single Instance workaround

关键代码:
<div class="cnblogs_code">namespace 你的命名空间{    public class Startup    {            public static void Main(string[] args)      {            SingleInstanceApplicationWrapper wrapper = new SingleInstanceApplicationWrapper();            wrapper.Run(args);      }    }   public class SingleInstanceApplicationWrapper :      Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase    {      private App app; // 这才是真正的WPF Application       public SingleInstanceApplicationWrapper()      {            this.IsSingleInstance = true;      }         // 第一次打开调这个方法      protected override bool OnStartup(            Microsoft.VisualBasic.ApplicationServices.StartupEventArgs e)      {            app = new App();            app.Run();             return false;      }         // 再次打开调这个方法      protected override void OnStartupNextInstance(            Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs e)      {            // 当用户试图再次打开这个程序的时候            MessageBox.Show("您正在运行该程序");      }    }   /// <summary>    /// Interaction logic for App.xaml    /// </summary>    public partial class App : Application    {    }}
页: [1]
查看完整版本: 通过 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase 实现 WPF