如何从WinForms访问WPF控件的方法和属性?

8tntrjer  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(142)

在自定义控件库中创建了一个只包含RichTextBox(System.Windows.Controls.RichTextBox)的控件。该控件被添加到WinForms窗体中。
问题是访问它的方法和属性。
使用var rich = elementHost1.Child as System.Windows.Controls.RichTextBox时,rich变量包含null

pxyaymoc

pxyaymoc1#

WpfControlLibrary1.UserControl1
如果我没理解错你的解释,那么试试这个:

WpfControlLibrary1.UserControl1 control = 
        (WpfControlLibrary1.UserControl1) elementHost1.Child;
    System.Windows.Controls.RichTextBox rich = 
        (System.Windows.Controls.RichTextBox) control.Content;

System.InvalidCastException:无法将类型为“系统.Windows.控件.网格”得对象强制转换为类型“系统.Windows.控件.RichTextBox.”
那么您没有正确解释“仅包含RichTextBox”。
需要更改代码以考虑网格:

WpfControlLibrary1.UserControl1 control = 
        (WpfControlLibrary1.UserControl1) elementHost1.Child;
    System.Windows.Controls.Grid grid = 
        (System.Windows.Controls.Grid) control.Content;
    System.Windows.Controls.RichTextBox rich = 
        (System.Windows.Controls.RichTextBox) grid.Children[0];

相关问题