是否有可能在WPF Web应用程序中嵌入Windows窗体?
本文关键字:Windows 窗体 应用程序 有可能 WPF Web 是否 | 更新日期: 2023-09-27 17:49:34
我正在构建一个将与WPF托管在web上的应用程序。我在旧的Windows窗体应用程序中有一些遗留表单,是否可以嵌入这些表单,或者我将不得不重写它们?
我知道我可以轻松地将它们嵌入到桌面WPF应用程序中。
可以在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