我们有一个在 Windows 窗体中创建的旧库。我们想在现有的 WPF 应用程序中使用这个库。根据此链接,这是可能的。有没有人尝试过这样做?我们需要注意什么?有什么建议吗?
谢谢!
关于这个主题有很多可用的资源。以下是从简单的 Google 搜索返回的一些内容:
我将解释第一个链接,因为它相当简单且易于管理。它实际上没有太多代码。
首先,您需要添加对以下程序集的引用:
然后创建一个网格(在本例中名为 Grid1)。
这是代码隐藏:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// Create the interop host control.
System.Windows.Forms.Integration.WindowsFormsHost host =
new System.Windows.Forms.Integration.WindowsFormsHost();
// Create the MaskedTextBox control.
MaskedTextBox mtbDate = new MaskedTextBox("00/00/0000");
// Assign the MaskedTextBox control as the host control's child.
host.Child = mtbDate;
// Add the interop host control to the Grid
// control's collection of child controls.
this.grid1.Children.Add(host);
}
您所做的只是实例化一个WindowsFormsHost
然后添加一个名为 mtbDate 的子控件。实例化您自己的控件并使用相同的方法添加它。然后像平常在 Win Forms 中那样操作它。
然后在类的顶部添加一个 using:
using System.Windows.Forms;
我希望这会有所帮助。