C# 如何在XAML文件中使用WinForms主机或将其放入WPF项目的工具箱中
我已经阅读了如何在C# 如何在XAML文件中使用WinForms主机或将其放入WPF项目的工具箱中,c#,.net,wpf,winforms,xaml,C#,.net,Wpf,Winforms,Xaml,我已经阅读了如何在WPF的窗口中嵌入表单的教程,我测试了它,看起来很简单。但问题是我在.cs文件中以编程方式创建了winformhost。这对我来说是不合适的 我想把它放在XAML中,以便更好地控制它的大小。如果可能的话,我也想将WinFormshost添加到工具箱中我不知道您为什么要这样做。。但无论如何,因为Winform是一个顶级控件 public partial class MainWindow : Window { Form1 frm = null; public Ma
WPF的窗口中嵌入表单的教程,我测试了它,看起来很简单。但问题是我在.cs
文件中以编程方式创建了winformhost
。这对我来说是不合适的
我想把它放在XAML中,以便更好地控制它的大小。如果可能的话,我也想将WinForms
host添加到工具箱中我不知道您为什么要这样做。。但无论如何,因为Winform是一个顶级控件
public partial class MainWindow : Window
{
Form1 frm = null;
public MainWindow()
{
InitializeComponent();
frm = new Form1();
frm.TopLevel = false;
}
private void frmMain_Loaded(object sender, RoutedEventArgs e)
{
myHost.Child = frm;
}
}
快乐编码
这是XAML的伴奏
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" WindowState="Maximized">
<Grid x:Name="frmMain" Background="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}" Loaded="frmMain_Loaded">
<DockPanel LastChildFill="True">
<WindowsFormsHost x:Name="myHost" HorizontalAlignment="Stretch" Height="Auto" Margin="0" VerticalAlignment="Stretch" Width="Auto"/>
</DockPanel>
</Grid>
</Window>
试试看。。。我向你保证它是有效的,你想要它干什么?specifically@HighCore谢谢你的回答。如果你想知道需要什么,我可以给你发电子邮件。我不想离题,我确切地知道我需要什么。我需要/想要/希望能够从xaml级别添加WinForms主机
。如果你能做到这一点,你能发布一个小教程作为答案吗?@HighCore这样更好吗?没有理由在尝试之前降低答案的评分:)这真的管用。天哪,我喝醉了吗?我在你的答案中没有看到XAML。我只能看到过程性的C#
code。你能解释一下为什么在你的cs(C#)文件中使用classForm1
?