我的应用程序已开始最小化。
我可以将RestoreBounds设置为在用户恢复时窗口恢复的大小。
但是,如果表单应该恢复到最大化或正常状态,我该怎么设置?默认为正常。我希望有类似RestoreWindowState的东西。
我可以用某种方式使用API吗?
答案 0 :(得分:0)
你不能自己添加和管理这个属性吗?
将属性添加到表单中 覆盖OnClientSizeChanged并检查窗口状态是否已从Minimized更改 如果是这样,请将WindowState设置为您的属性值 设置一个标志,以便只进行一次逻辑。
答案 1 :(得分:0)
根据我的经验,Window.RestoreBounds
将始终为您提供窗口的最终“正常”尺寸,而Window.WindowState
将始终为您提供窗口的最终状态(最大,最小,正常)。无论您处于什么状态,都可以随时保存RestoreBounds和WindowState并手动设置窗口尺寸/状态。
这是我的操作方式(而且我知道还原并不纯真的,但我并不在乎):
private class WindowStatus
{
private WindowState state;
private Rect restoreBounds;
public WindowStatus(Window window)
{
state = window.WindowState;
restoreBounds = window.RestoreBounds;
}
public void Restore(Window window)
{
window.WindowState = state;
window.Height = restoreBounds.Height;
window.Width = restoreBounds.Width;
window.Left = restoreBounds.Left;
window.Top = restoreBounds.Top;
}
}