中的WinForms,我有.Handle财产,我如何在WPF得到相当于?如何查找。RichTextBox的句柄?
我试过使用WindowInteropHelper但它不支持RichTextBox
,只有Window
类型。 在此先感谢。
中的WinForms,我有.Handle财产,我如何在WPF得到相当于?如何查找。RichTextBox的句柄?
我试过使用WindowInteropHelper但它不支持RichTextBox
,只有Window
类型。 在此先感谢。
控件没有关联WinAPI的手柄,像WinForms的控制做的。 WPF只使用一个WinAPI窗口处理来自操作系统的窗口消息,并将其封装在Window类实例中。你可以做的最好的方法是浏览你的控件的父母,直到找到一个窗口并获得句柄。据我了解,这可能与WindowInteropHeler返回的句柄相同。
UPD。 为了使该解答更有用和乱box'y这里是一些代码(但不测试):
IntPtr hwnd = new WindowInteropHelper(Window.GetWindow(userControlRefernce)).Handle;
我不敢相信!但如果我需要从'Win32API'调用一个函数......不能吗?目前,我试图在WPF中做到这一点:http://stackoverflow.com/questions/332788/maintain-scroll-position-of-treeview但在我的情况下,我想同步:http://stackoverflow.com/问题/ 9028524 /何灿I-同步,二,滚动条 – Jack 2012-01-27 13:52:28
RichTextBox
没有HWND
手柄WPF。如果您真的需要这个句柄,您仍然可以使用WinForms库中的RichTextBox
使用WindowsFormsIntegration
程序集。
请记住,您可以随时检查哪些元素具有或不具有使用Spy++
实用的手柄。在WPF
哦,不。我不能使用的WinForms RichTextBox的的,主要的原因在这个项目中使用WPF,是RichTextBox中的资源在WPF是的WinForms RichTextBox的的都没有。 (我正在写一个带有高亮的简单文本编辑器)。感谢您关于spy ++使用的提示。下一次,我会使用它。 – Jack 2012-01-27 14:01:33
即使在的WinForms,这个属性是给你的窗口句柄 - > HTTP:/ /msdn.microsoft.com/en-us/library/system.windows.forms.control.handle.aspx(“获取窗口句柄控件绑定到。”) – 2012-01-27 13:02:35
这是WPF靓芯,控制不视窗。只需油漆,使*看起来像一个窗口。还有一大堆代码,使它们像窗口一样。因此没有Handle属性。 – 2012-01-27 14:17:16