PresentationSource没有handle
时间: 2023-08-26 09:03:55 浏览: 121
handle.exe
如果 PresentationSource 返回 null 或者 Handle 属性返回 IntPtr.Zero,说明该 WPF 控件没有与之关联的窗口句柄。这种情况通常发生在控件还没有被添加到可视化树中的时候。
如果确保该控件已经被添加到可视化树中,但是 PresentationSource 仍然返回 null,可以尝试强制进行布局更新,例如使用 UpdateLayout 方法。示例代码如下:
```csharp
myWpfControl.UpdateLayout();
var presentationSource = PresentationSource.FromVisual(myWpfControl);
var hwnd = presentationSource?.Handle ?? IntPtr.Zero;
```
如果仍然无法获取到窗口句柄,可以考虑使用其他方法,例如使用 VisualTreeHelper 类遍历控件的可视化树来查找与之关联的窗口。
阅读全文