如何在C#WPF应用程序中获得屏幕大小的实际值

时间:2016-05-11 17:40:09

标签: c# wpf

我想在SizeChanged事件中获取我的系统的屏幕宽度和高度。

在所有情况下都可以正常使用,不包括:

  1. 将屏幕尺寸更改为1024 X 765然后运行我的应用程序工作正常。

  2. 在我的应用程序运行时再次将屏幕尺寸更改为另一个分辨率 得到了我之前的分辨率不是最新的宽度和高度。

  3. 我在screen.primaryscreen.bounds.width事件中使用了Window_SizeChanged

1 个答案:

答案 0 :(得分:0)

您可以监控SystemEvents的更改。

using Microsoft.Win32;

将其添加到构造函数或类似代码中:

SystemEvents.DisplaySettingsChanged += 
    new EventHandler(SystemEvents_DisplaySettingsChanged);

这是事件处理程序。我将数据绑定到2个TextBox,这样我可以看到值随着我的分辨率变化而变化,包括告诉它还原。

  void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)
  {
     data.ScreenHeight = Screen.PrimaryScreen.Bounds.Height;
     data.ScreenWidth = Screen.PrimaryScreen.Bounds.Width;
  }

在您的情况下,只需将作业更改为指向您要存储的位置。