WPF的控件没有句柄,但是有什么其他间接方法获得WPF控件的句柄啊。
发布网友
发布时间:2022-10-15 00:46
我来回答
共4个回答
热心网友
时间:2024-06-20 05:39
using System.Windows.Interop; //使用WindowInteropHelper类可以获得窗体句柄 int handle = new WindowInteropHelper(this).Handle.ToInt32();我们在项目中使用WPF开发程序,需要调用一个Activex控件,显示三维的场景,但是需要把当前窗口的句柄传递给OCX控件,WPF窗口本身没有句柄属性,需要通过如下的方式实现转换
int handle = new WindowInteropHelper(this).Handle.ToInt32();
//this代表当前的窗口
热心网友
时间:2024-06-20 05:39
1.窗体:
IntPtr hwnd = new WindowInteropHelper(this).Handle;
2.控件:
IntPtr hwnd = ((HwndSource)PresentationSource.FromVisual(uielement)).Handle;
句柄的取得不要在构造 函数中取得,此时的vitual还没有产生,在Loaded中 就可以了。
热心网友
时间:2024-06-20 05:40
试试:varhwndSource=(System.Windows.Interop.HwndSource)PresentationSource.FromDependencyObject(dependecyObject);
IntPtrhandle=hwndSource.Handle
热心网友
时间:2024-06-20 05:40
WPF的控件是没有句柄的,因为和普通的winform不一样,WPF的控件是“画”上去的,只有整个窗体的句柄
WPF的控件没有句柄,但是有什么其他间接方法获得WPF控件的句柄啊。
其他回答 using System.Windows.Interop; //使用WindowInteropHelper类可以获得窗体句柄 int handle = new WindowInteropHelper(this).Handle.ToInt32();我们在项目中使用WPF开发程序,需要调用一个Activex控件,显示三维的场景,但是需要把当前窗口的句柄传递给OCX控件,WPF窗口本身没有句柄属性,需要通过如下的方式实现转换int...
WPF的控件没有句柄,但是有什么其他间接方法获得WPF控件的句柄啊。
WPF的控件是没有句柄的,因为和普通的winform不一样,WPF的控件是“画”上去的,只有整个窗体的句柄
wpf 控件句柄,该怎么解决
Int GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount);hWnd:带文本的窗口或控件的句柄。 IpString:指向接收文本的缓冲区的指针。 nMaxCount:指定要保存在缓冲区内的字符的最大个数,其中包含NULL字符。如果文本超过界限,它就被截断。 如果函数成功,返回值是拷贝的字符串的字符个数,不包括...
如何根据已有的c++程序编写基于c#的WPF界面
1、做好WPF界面控件;2、借助WPF、WinForm的互操作技术,用WinForm用户控件重新包装一下WPF界面控件(因为WPF控件没有句柄,而WinForm控件有句柄);3、C++程序中预留一个空的容器控件,用来放置C#WinForm控件;4、通过C++/CLR创建WinForm控件的实例,并得到句柄;5、获取C++容器控件的句柄;6、通过SetParent...
c++写的dll能通过获取句柄操作c#的窗体控件吗
可以,前提是WinForm控件(底层是Win32控件),WPF控件一般是不能获取窗口句柄的。
WPF使用VncSharp时报在创建窗口句柄之前,不能在控件上调用 Invoke 或...
应该是你调用顺序没对,一般可以考虑在某个按钮点击里或者pageload里调用。而你的代码看上去是window(或者gdShow)都还没创建完毕,就调用了Display。试试把Display方法移动到最后?私信帮改
C# WPF WindowsFormsHost的问题 急
只能使用WPF来做了。我们共同完成迁移吧!
WPF为什么会比较耗内存啊???
这个是wpf框架自身的bug。有些wpf的特性微软刚开始设计的时候没有考虑到内存泄露的问题,比如句柄挂起,资源字典运用等,后来微软提供了一些bug fixed的补丁已经怎样释放内存的文档。如果你有兴趣可以去msdn上查找下。
C#(WPF)在不新建实例的情况下怎么调用另一个类的方法
<Grid> <Button Click="Button_Click"></Button> </Grid> //可以通过控件找到窗体实例, //示例:我用button找到了MainWindow private void Button_Click(object sender, RoutedEventArgs e) { Button b = sender as Button;//相当于BackStage Window w = FindAnchestor...
winform与WPF有什么区别
简而言之,有些对窗体的修改(例如修改某些样式)需要销毁并重新创建该窗体。暂存窗体就是用来在父窗体被销毁并重新创建的过程中用来临时保存其中的控件的。在这段时间内,UI线程仅运行于暂存窗体中。通常,WPF 应用程序从两个线程开始:一个用于处理呈现,一个用于管理 UI。呈现线程有效地隐藏在后台运行,...