等价于OnHandleCreated的WPF(来自C#)
本文关键字:来自 WPF OnHandleCreated 等价于 | 更新日期: 2023-09-27 17:57:54
对于WPF
中的窗口,OnHandleCreated
是否有类似于C#中的窗体的等价物?
我的意图是获得窗口的句柄,而不是它的子控件。我想在创建此句柄后访问它。在winforms中,我们可以使用OnHandleCreated在句柄创建后立即获取它。在WPF窗口中有其他选择吗?
如有任何帮助,我们将不胜感激。提前谢谢。
您可以使用Window.OnSourceInitialized
方法:
class MyWindow : Window
{
protected override void OnSourceInitialized(EventArgs e)
{
base.OnSourceInitialized(e);
var handle = new WindowInteropHelper(this).Handle;
// -- or --
var hwndSource = (HwndSource)PresentationSource.FromVisual(this);
var handle = hwndSource.Handle;
}
}
HwndSource
公开了其他互操作机制,例如为消息循环添加挂钩。如果您不需要,只需使用WindowInteropHelper
即可。