C# 在System.Windows.UIElement中包装System.Windows.Forms中的控件
是否可以在System.Windows.UIElement中包装旧的System.Windows.Forms控件?我知道文件是以某种方式包装的,其基础来自System.Windows.Forms 如果这是可能的,那么实现会导致任何后果吗?有一个类,不过我要补充一点注意事项。如果您使用的是winforms中的所有旧控件,并混合了WPF,那么对用户来说,这将不是一个好的体验。我假设有人告诉您不能,或者没有时间,但实际上您应该用WPF控件替换现有控件。除非你有很多非常复杂的业主绘制的东西,否则这不应该是太多的努力 因此,我的建议是开始创建现有控件的WPF版本(或者从Telerik这样的人那里购买一套用于您创建的任何非特定于域的控件,如工具栏等),并且只保留Winforms控件用于您创建的额外复杂的定制控件。即便如此,你也应该计划一个“第二阶段”来取代这些。您的用户将为此感谢您。有这个类,不过我要补充一点注意事项。如果您使用的是winforms中的所有旧控件,并混合了WPF,那么对用户来说,这将不是一个好的体验。我假设有人告诉您不能,或者没有时间,但实际上您应该用WPF控件替换现有控件。除非你有很多非常复杂的业主绘制的东西,否则这不应该是太多的努力C# 在System.Windows.UIElement中包装System.Windows.Forms中的控件,c#,wpf,winforms,C#,Wpf,Winforms,是否可以在System.Windows.UIElement中包装旧的System.Windows.Forms控件?我知道文件是以某种方式包装的,其基础来自System.Windows.Forms 如果这是可能的,那么实现会导致任何后果吗?有一个类,不过我要补充一点注意事项。如果您使用的是winforms中的所有旧控件,并混合了WPF,那么对用户来说,这将不是一个好的体验。我假设有人告诉您不能,或者没有时间,但实际上您应该用WPF控件替换现有控件。除非你有很多非常复杂的业主绘制的东西,否则这不应该
因此,我的建议是开始创建现有控件的WPF版本(或者从Telerik这样的人那里购买一套用于您创建的任何非特定于域的控件,如工具栏等),并且只保留Winforms控件用于您创建的额外复杂的定制控件。即便如此,你也应该计划一个“第二阶段”来取代这些。您的用户将为此感谢您。您可以在WPF表单中托管Windows表单控件。只需将其包装在WindowsFormsHost元素中。这显示了如何在WPF窗口中托管windows窗体屏蔽测试框
<Window x:Class="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>
</Window>
您可以在WPF窗体中托管Windows窗体控件。只需将其包装在WindowsFormsHost元素中。这显示了如何在WPF窗口中托管windows窗体屏蔽测试框
<Window x:Class="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>
</Window>
在WPF窗口中包含WinForms控件时,您发现了哪些问题?我断断续续地听说人们会遇到问题,但在我编写的混合WPF/WinForms中,将两者结合起来并没有任何实际困难。当然,我所做的所有整合都是在理解空间和焦点的基础上进行的。也许我只是在没有意识到的情况下避免了一些明显的陷阱,或者也许我只是运气好。嗯,实际上我指的是外观和感觉。除非付出一定的代价,否则winforms控件的外观和感觉将与wpf内容不一致。您发现在wpf窗口中包含winforms控件有什么问题?我断断续续地听说人们会遇到问题,但在我编写的混合WPF/WinForms中,将两者结合起来并没有任何实际困难。当然,我所做的所有整合都是在理解空间和焦点的基础上进行的。也许我只是在没有意识到的情况下避免了一些明显的陷阱,或者也许我只是运气好。嗯,实际上我指的是外观和感觉。除非付出一定的代价,否则winforms控件的外观和感觉将与wpf内容不一致。