我试图将自定义对话框的位置保存到用户注册表中,以便当它们重新加载同一个对话框时,它将出现在它们移动或调整到之前的相同位置。 我保存的Windows X位置Y位置的宽度和高度。除了最小化对话框时,它一切正常。如果对话框被最小化,并且用户右键单击任务栏上的对话框表示(Windows 7),则可以单击“关闭此窗口”。奇怪的是,号码-32030被保存在注册表中作为X和Y位置,但宽度和高度被正确保存。任何想法这个数字来自于什么和在这种情况下做什么thxWPF中最小化的窗口位置
1
A
回答
6
你想是这样的,当你保存窗口位置:
if (this.WindowState == WindowState.Normal)
{
Properties.Settings.Default.Top = Top;
Properties.Settings.Default.Left = Left;
Properties.Settings.Default.Height = Height;
Properties.Settings.Default.Width = Width;
}
else
{
Properties.Settings.Default.Top = RestoreBounds.Top;
Properties.Settings.Default.Left = RestoreBounds.Left;
Properties.Settings.Default.Height = RestoreBounds.Height;
Properties.Settings.Default.Width = RestoreBounds.Width;
// Check for WindowState.Maximized or WindowState.Minimized if you
// need to do something different for each case (e.g. store if application
// was Maximized
}
最重要的一点是,你需要在最大化或最小化的窗口RestoreBounds
。代码可能会被重构,使其更有效率,但你明白了。
3
我想你正在更新窗口的位置,当窗口关闭?如果是这样,有几个解决方案。
1)将窗口位置保存在不同的事件上,例如当窗口被调整大小或移动时。 2)在保存X和Y位置之前检查窗口是否已最小化。
例子:
switch (this.WindowState)
{
case WindowState.Maximized:
// don't update the X,Y
break;
case WindowState.Minimized:
// don't update the X,Y
break;
case WindowState.Normal:
// DO update the X,Y
break;
}
相关问题
- 1. 获取最大化最小化窗口的窗口位置
- 2. 最小化WPF中的窗口?
- 3. Wpf主窗口获取最小化
- 4. WPF窗口位置
- 5. WPF窗口位置
- 6. WPF窗口位置
- 7. WPF窗口位置
- 8. 当主窗口最小化时,WPF聚焦可见窗口
- 9. WPF窗口没有最小化/最大化
- 10. 当窗口最小化时保留HTML页面的位置
- 11. WPF窗口位置绑定
- 12. 浏览器窗口最小化时位置重叠
- 13. 禁用窗口最大化/最小化
- 14. 最小化Outlook窗口
- 15. 如何最小化窗口?
- 16. 最小化Tk窗口
- 17. JButton最小化窗口(JFrame)
- 18. 最小化弹出窗口
- 19. 如何渲染窗口关闭/最大化/最小化wpf中的按钮?
- 20. 如何设置WPF窗口的位置?
- 21. 如何在最小化窗口后最大化窗口
- 22. 最小化Swing中的窗口
- 23. 如何从最小化窗口的HDC中复制位?
- 24. WPF - 设置对话窗口相对于主窗口的位置?
- 25. 在WPF中恢复窗口位置和大小时漂移
- 26. 手动设置窗口位置wpf mvvm
- 27. 尽量减少WPF中的子窗口当子窗口的所有者窗口最小化时
- 28. 窗口(弹出)在javascript中最小化
- 29. 更改WPF窗口的启动位置
- 30. 位置在窗口WPF控件的?