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控件的句柄啊。的主要内容,如果未能解决你的问题,请参考以下文章