【问题标题】:WPF Restore Visibility State on next startWPF 在下次启动时恢复可见性状态
【发布时间】:2014-09-05 11:45:14
【问题描述】:

我正在尝试将旧的 Windows 窗体代码转换为 wpf。我的每个窗口都存储了可见性状态、大小和位置,并在下次运行应用程序时恢复了这些状态。我连接到 FormCloseQuery 事件,在该事件中可以获得有关 closereason 的信息。这在 WPF 中是不可能的。

我可以将位置和大小存储在 WPF 表单的关闭事件中,但无法存储可见性状态。

有答案吗?

谢谢 马丁

【问题讨论】:

标签: c# wpf


【解决方案1】:

我可以将位置和大小存储在 WPF 表单的关闭事件中,但无法存储可见性状态。

罂粟花! Window.Visibility 属性有什么问题?:

private void MainWindow_Closing(object sender, CancelEventArgs e)
{
    // this.Visibility is the current visibility state of the Window
}

此外,为了您的信息,最好处理Window.Deactivated 事件以在每次应用程序失焦时更新值,或者处理Window.Closed 事件以在关闭时更新。 Closing 事件专门用于取消关闭请求。

此外,在 WPF 中还习惯于存储 bool 值,然后使用 BooleanToVisibilityConverter Class 将它们数据绑定到 Window.Visibility 属性。

【讨论】:

  • 嗨,谢里登。感谢您的评论。你是对的,我使用的是 Closed 事件而不是 Closing。问题是当用户手动关闭窗口或退出应用程序时应用程序关闭窗口时会调用 Closed。如果它是手动关闭的,我不想打开窗口。如果它被应用程序关闭,它应该出现在下一步中。 winforms 中的 CloseReason 帮助了我,但无法检测 WPF 窗口是如何关闭的。
  • 无法检测 WPF 窗口是如何关闭的...一切皆有可能。
猜你喜欢
  • 2018-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多