1.窗体:
IntPtr hwnd = new WindowInteropHelper(this).Handle;
2.控件:
IntPtr hwnd = ((HwndSource)PresentationSource.FromVisual(uielement)).Handle;
句柄的取得不要在构造 函数中取得,此时的vitual还没有产生,在Loaded中 就可以了。
using System.Windows.Interop; //使用WindowInteropHelper类可以获得窗体句柄 int handle = new WindowInteropHelper(this).Handle.ToInt32();我们在项目中使用WPF开发程序,需要调用一个Activex控件,显示三维的场景,但是需要把当前窗口的句柄传递给OCX控件,WPF窗口本身没有句柄属性,需要通过如下的方式实现转换
int handle = new WindowInteropHelper(this).Handle.ToInt32();
//this代表当前的窗口

本文介绍在WPF应用程序中如何获取窗体和控件的句柄,这对于需要与ActiveX控件交互的场景尤为重要。文章提供了具体的C#代码示例,展示了如何使用WindowInteropHelper类来获取句柄。

898

被折叠的 条评论
为什么被折叠?



