繁体   English   中英

如何检测 window 何时被拖到 WPF 应用程序中的另一台显示器?

[英]How to detect when a window has been dragged to another monitor in a WPF application?

我正在尝试检测我的 WPF 应用程序的 window 何时在显示器之间拖动,因此我可以更改其大小以适合已拖动到的显示器。 我尝试了以下方法:

private void Application_Startup(object sender, StartupEventArgs e)
{
        SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged;
}

public void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)
{
        Console.WriteLine("Changed");
}

但是,当我将 window 移动到另一台显示器时, SystemEvents_DisplaySettingsChanged永远不会被调用。

另外,我不知道这是否是保持应用程序大小响应的最佳方式。

您可以在 window 的构造函数中设置LocationChanged的事件处理程序:

this.LocationChanged += MainWindow_LocationChanged;

并检查事件处理程序中的监视器:

private void MainWindow_LocationChanged(object sender, EventArgs e)
{
    System.Windows.Forms.Screen screen = System.Windows.Forms.Screen.FromHandle(new System.Windows.Interop.WindowInteropHelper(this).Handle);
    //evaluate the screen variable
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM