C#WPF用户控件没有show()方法,那怎么实现单击一个按钮后弹出一个用户控件呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#WPF用户控件没有show()方法,那怎么实现单击一个按钮后弹出一个用户控件呢?相关的知识,希望对你有一定的参考价值。

参考技术A wpf 控件不能单独的展现,需要wpf->Window 载体支持
wpf->Window 实现了wpf视觉树,
wpf 控件就是视觉树中的一员,不能脱离花盆(Window)。
参考技术B 实现的弹窗看下教程

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的控件是“画”上去的,只有整个窗体的句柄

以上是关于C#WPF用户控件没有show()方法,那怎么实现单击一个按钮后弹出一个用户控件呢?的主要内容,如果未能解决你的问题,请参考以下文章

WPF 页面内移动用户控件之实现

wpf怎么实现主窗口向用户控件传值?

WPF怎么跨线程访问UI控件

C#Winform里怎么让控件旋转啊。。。Panel啥的。怎么让他旋转一定的角度。

WPF知识总结

做winform里怎么把登陆页面的账号传到其他页面的控件中