从 ASP.NET 页面按钮启动 WPF 单击

Posted

技术标签:

【中文标题】从 ASP.NET 页面按钮启动 WPF 单击【英文标题】:Launch WPF from ASP.NET page button click 【发布时间】:2011-08-11 08:20:12 【问题描述】:

我正在尝试编写一个包含按钮的 aspx 页面,该按钮的单击事件应导致打开 WPF 表单以进行进一步处理。我正在尝试使用新的进程对象来启动 WPF 应用程序。

我在后面的代码中使用如下代码:

protected void Btn_Click(对象发送者,EventArgs e) 进程 WPF = new Process(); WPF.StartInfo.FileName = "WpfApplication1.exe"; WPF.Start();

在执行时,按钮单击执行,没有任何异常,但 WPF 窗口没有打开。

谁能帮帮我。

谢谢。

【问题讨论】:

我google了一下,发现如下讨论:social.msdn.microsoft.com/forums/en-US/wpf/thread/…总结是WPF不能从ASP.NET启动。为此需要 XBAP。 您的评论就是答案(这正是我在回答中所说的)。 请不要将其作为评论发布,将其发布为答案并接受它。 【参考方案1】:

您发布的代码启动(或尝试启动)WPF 应用程序在服务器上

如果您希望客户端运行 WPF 应用程序,您可以使用 XBAP 应用程序或通过 ClickOnce 部署分发的常规 WPF 应用程序,以便您可以在网页上添加指向该应用程序的链接。

【讨论】:

【参考方案2】:

要从 asp.net 启动 WPF 表单,请转到后面代码的 查看代码 并为 WPF 表单创建一个对象,然后在 Page_Load 事件中粘贴以下代码

 protected void Page_Load(object sender, EventArgs e)
        
            Thread t = new Thread(() =>
            
                mainWindow = new MainWindow();
                mainWindow.Show();
                System.Windows.Threading.Dispatcher.Run();
            );
            t.SetApartmentState(ApartmentState.STA);
            t.IsBackground = true;
            t.Start();
            createDB();
        

【讨论】:

以上是关于从 ASP.NET 页面按钮启动 WPF 单击的主要内容,如果未能解决你的问题,请参考以下文章

单击按钮后 ASP.NET 页面元素消失

如何避免在asp.net中的按钮单击事件后页面刷新

ASP.NET Core 2,使用没有 MVC 的 Razor 页面单击按钮

单击按钮不适用于 asp.net 部分页面中的 div

如何使用 asp.net 按钮单击在引导模式中停止刷新页面

Chrome 后退按钮页面刷新 - ASP.net