WPF的控件没有句柄,但是有啥其他间接方法获得WPF控件的句柄啊。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF的控件没有句柄,但是有啥其他间接方法获得WPF控件的句柄啊。相关的知识,希望对你有一定的参考价值。

我要在WPF窗体中同时控制一个按钮和一个image,在image里放置3D场景,我要把image的句柄传给3D场景,以保证3D场景能在WPF窗体中呈现,并且可以操纵2D按钮,请高手不吝赐教啊!

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

WPF宽度100%,我想wpf的子控件的宽度跟父控件的宽度一样,当父控件宽度改变的时候子控件随着改变,请问有啥!

参考技术A 如果父控件为Grid,那只需要设置其子控件HorizontalAlignment="Stretch"即可 参考技术B 设置样式,然后该控件里的子控件都会默认使用该样式,除非给子控件指定了具体的样式。

以上是关于WPF的控件没有句柄,但是有啥其他间接方法获得WPF控件的句柄啊。的主要内容,如果未能解决你的问题,请参考以下文章

WPF的控件没有句柄,但是有啥其他间接方法获得WPF控件的句柄啊。

如何获取控件句柄 vc

c#,获取控件的句柄?,高手入!

c#获取窗口句柄后 如何遍历所有控件

wpf 控件句柄,该怎么解决

VC如果得到其他程序窗口的控件句柄