我有一个开始最小化的应用程序。
我可以设置RestoreBounds来设置当用户恢复窗口时窗口将恢复到的大小。
但是我如何设置窗体是否应该恢复到最大化状态或正常状态?默认情况下为Normal。我希望有像RestoreWindowState这样的东西。
我能用API以某种方式做到这一点吗?
发布于 2010-07-22 21:47:38
你不能自己添加和管理这个属性吗?
将该属性添加到窗体中。
重写OnClientSizeChanged并检查窗口状态是否已从最小化更改。
如果是这样,请将WindowState设置为您的属性的值。
设置一个标志,以便您只需执行一次该逻辑。
发布于 2019-05-04 00:17:58
根据我的经验,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;
}
}https://stackoverflow.com/questions/3309442
复制相似问题