gpt4 book ai didi

wpf - 在 XAML WPF 中插入 Winforms 表单

转载 作者:行者123 更新时间:2023-12-04 06:50:25 26 4
gpt4 key购买 nike

我正在尝试将 WinForms 表单集成到 WPF XAML 页面中。
我见过使用 WindowsFormsHost 放置 Windows 窗体控件的示例,但没有看到用于集成整个窗体的示例。

有没有办法做到这一点? Windows 窗体托管在 WPF 应用程序内,我目前能够将其作为新窗口加载,但不能在 XAML 页面内加载。

最佳答案

将 WinForms 表单放在 WPF 表单中的 WindowsFormsHost 标记中是错误的。但是您可以从任何 WPF 项目实例化一个新表单。就是这样:

假设您有两个项目“WinFormProj”和“WPFProj”。 WinFormProj 有一个名为“登录”的表单。

首先在WPFProj项目中添加对WinFormProj的引用。

然后在任何 WPFProj 元素中的任何事件后面,执行以下操作:

var winFormWindow = new WinFormProj.Login();  
winFormWindow.Show();
// or
windFormWindow.ShowDialog();

如果这不行,您可以将您的 WinForms 表单转换为用户控件,其中 在 WindowsFormsHost WPF 标签中存在很好。要做到这一点,通常很简单……

转到类声明并更改:
public class Login : Form


public class Login : UserControl

接下来,在您的 WPF 表单中,将 WinForms 项目添加为 xml 命名空间:
xmlns:winForms="clr-namespace:WinFormsProj;assembly=WinFormsProj"

最后,将此添加到您的 Grid/StackPanel/Whatever 您希望托管用户控件的位置:
<WindowsFormsHost Name="LoginControl">
<winForms:LogIn />
</WindowsFormsHost>

一旦你揭开它的神秘面纱就很简单了。

关于wpf - 在 XAML WPF 中插入 Winforms 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3204728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com