我正在编写一个自定义的Wpf控件,需要尽早地获取包含窗口的HwndSource引用。如果可能的话,这应该在我的控件构造函数中完成;或者在控件添加到显示层次结构的时候完成。
如何检测HwndSource是否可用?我计划使用以下代码来获取引用:
var source = HwndSource.FromVisual(this) as HwndSource;
http://msdn.microsoft.com/en-us/library/ms742522.aspx
编辑:为了增强回答以解决下面的评论:
为了获取拥有hwnd的窗口的句柄,您可以使用WindowInteropHelper类。
此示例也来自MSDN文档
在c#中
WindowInteropHelper wih = new WindowInteropHelper(myDialog);
wih.Owner = ownerHwnd;
myDialog.ShowDialog();
Dim wih As New WindowInteropHelper(myDialog)
wih.Owner = ownerHwnd
myDialog.ShowDialog()
希望这能帮到你。