是否有可能在WPF Web应用程序中嵌入Windows窗体?

本文关键字:Windows 窗体 应用程序 有可能 WPF Web 是否 | 更新日期: 2023-09-27 17:49:34

我正在构建一个将与WPF托管在web上的应用程序。我在旧的Windows窗体应用程序中有一些遗留表单,是否可以嵌入这些表单,或者我将不得不重写它们?

我知道我可以轻松地将它们嵌入到桌面WPF应用程序中。

是否有可能在WPF Web应用程序中嵌入Windows窗体?

可以在XBAP中使用WindowsFormsHost来托管Windows窗体内容。这是Ahmadreza Atighechi的一篇博客文章,展示了这一过程。

注意,这将需要完全信任才能运行,并且可能只在IE中工作。这在WPF部分信任安全中有记录,其中Windows窗体集成被列为"部分信任中不安全的WPF功能"之一。这意味着在使用WindowsFormsHost时,XBAP的默认部署将失败,并且您需要确保在访问XBAP时,每个系统都设置为使用完全信任。上面的安全链接描述了与此相关的主要问题。

在WPF或ASP中包含整个表单。. NET,我非常怀疑它在IE之外的可能性;因此,疏远所有其他浏览器。

如果你仍然坚持保留当前的应用程序并使其"web-like",那么将其部署为ClickOnce。如果可以的话,这可能是你最好的选择。

这允许您在WPF中包含web…

<Window x:Class="HostingWfInWpf.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"  
    Title="HostingWfInWpf"
    >
    <Grid>
        <WindowsFormsHost>
            <wf:MaskedTextBox x:Name="mtbDate" Mask="00/00/0000"/>
        </WindowsFormsHost>
    </Grid>

来自:

http://msdn.microsoft.com/en-us/library/system.windows.forms.integration.windowsformshost%28v=vs.110%29.aspx