如何使用WinForms应用程序启动WPF应用程序

问题描述 投票:0回答:1

我正在尝试使用 WinForms 应用程序启动 WPF 应用程序。

这是我的代码

private void button2_Click(object sender, EventArgs e)
    {
        try
        {
            var app = new App();
            app.InitializeComponent();
            app.Run(new MainWindow());
        }
        catch (Exception ex)
        {

            MessageBox.Show(ex.ToString());
        }
    }

当我单击按钮时,它将加载 WPF 应用程序。然后,如果我关闭 WPF 并再次单击该按钮,则会收到以下错误

无法在同一 AppDomain 中创建多个 System.Windows.Application 实例

wpf winforms
1个回答
0
投票

您不能在 App 类中启动多个实例。所以你可以使用一个应用程序实例来解决这个问题。答案如下

 public partial class Form1 : Form
    {
        App app;

        public Form1()
        {
            InitializeComponent();
            app = new App();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                app.InitializeComponent();
                app.MainWindow = new MainWindow();
                app.ShutdownMode = System.Windows.ShutdownMode.OnExplicitShutdown;
                app.MainWindow.Show();
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.ToString());
            }
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.