如何在窗口或网格中添加System.Windows.Forms.RichTextBox()
。无需添加WindowsFormsHost()
。这是我的代码:
的.xaml
<Grid Name="Grid1">
</Grid>
</Window>
.xaml.cs
Host1 = new WindowsFormsHost();
Host1.Margin = new Thickness(8, 12, 3, 3);
Host1.Height = 315;
Host1.Width = 570;
Host1.VerticalAlignment = System.Windows.VerticalAlignment.Top;
Host1.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
richTextBox1 = new System.Windows.Forms.RichTextBox();
richTextBox1.Height = 315;
richTextBox1.Width = 570;
richTextBox1.TextChanged += new EventHandler(richTextBox1_TextChanged);
Host1.Child = richTextBox1;
Grid1.Children.Add(Host1);
我想删除Host1
,这会让代码太麻烦。如何直接将richTextBox1
添加到窗口或直接添加到Grid1
richTextBox1
?
答案 0 :(得分:2)
解决方案非常简单:不要使用控件的Windows窗体版本。
而是使用System.Windows.Controls中包含的RichTextBox或WPF Toolkit的Community Edition中的free RichTextBox。
答案 1 :(得分:2)
你做不到。
Windows窗体和WPF是两种完全不同的技术,具有完全不同的基础架构,渲染堆栈,事件模型,输入模型等。
要在WPF页面中托管WinForms控件,您需要一些东西来托管WinForms控件并弥合WPF和WinForms之间的差距,编组事件等。相反,要在WinForms页面中托管WPF控件,您必须使用ElementHost班。
您可能需要考虑使用WPF的RichTextBox
控件。
或者,如果您发现WinForms RichText控件太麻烦,请考虑使用许多供应商/来源提供的众多WPF RichText控件之一。