在 WPF 中获取 MainWindow 的句柄

Get handle of the MainWindow in WPF

我刚刚在 VS 2015 中创建了一个空的 WPF 应用程序。

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        var mainWindowHandle = new WindowInteropHelper(this).Handle;
    }
}

但是 mainWindowHandle 总是 0

可以吗?应该是 > 0 吗?

您的 window 尚未显示。所以实际的 window 还没有被创建。尝试在 ActivatedLoaded 事件中检查此句柄。

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        Loaded += OnLoaded;
    }

    private void OnLoaded(object sender, RoutedEventArgs routedEventArgs)
    {
        var mainWindowHandle = new WindowInteropHelper(this).Handle;
    }
}