【问题标题】:Detecting when the desktop in Windows 8.x is snapped in WPF检测 Windows 8.x 中的桌面何时在 WPF 中对齐
【发布时间】:2015-06-15 12:20:56
【问题描述】:

我有一个无窗口、无镶边的 WPF 应用程序,它在桌面上处于最大化状态。当桌面被捕捉时,我的应用程序被切断。同样,当我的应用程序在快照桌面中启动时,它会窃取整个监视器的焦点。

我需要更新我的可见元素,以便它们不再被 Windows 8.x 快照截断。是否有事件或 api 可以让我的代码对此更改做出反应?

【问题讨论】:

  • 如何“捕捉”桌面? Aero Snap 没有通知,听起来不像。
  • @HansPassant 我不是在谈论航空快照,而是您可以使用 Metro 应用程序进行的那种快照。您可以以相同的方式向左或向右对齐桌面。
  • “MainWindow”的 SizeChanged 事件将在桌面被捕捉并且窗口改变大小时触发。如果高度和宽度是静态的,则事件不会触发

标签: wpf windows-8 windows-8.1


【解决方案1】:

订阅“MainWindow”的SizeChanged 事件。每当用户更改大小或由于现代应用程序捕捉而更改大小时,都会触发此事件。如果您将宽度和高度设置为静态,则不会触发该事件。

public MainWindow()
{
    InitializeComponent();
    this.SizeChanged += OnSizeChanged;
}

private void OnSizeChanged(object sender, SizeChangedEventArgs     sizeChangedEventArgs)
{
    System.Diagnostics.Debug.WriteLine(sizeChangedEventArgs.NewSize);            
}

【讨论】:

  • 我缺少的部分是手动设置高度和宽度。将窗口设置为最大化并结合您的答案解决了问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多