我試圖將自定義對話框的位置保存到用戶註冊表中,以便當它們重新加載同一個對話框時,它將出現在它們移動或調整到之前的相同位置。 我保存的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控件的?