在 WPF 應用程式中,視窗之間的層級關係(Z-Order)、模態行為、最小化/還原同步,皆由 Show/ShowDialog 方法與 Owner 屬性的組合決定。本文系統整理四種常見情境,助您精確掌控視窗互動。
var sw = new SubWindow();
sw.Show();
SubWindow 初始位於上方,但點擊 RootWindow 會將其帶到最前。var sw = new SubWindow();
sw.Owner = this;
sw.Show();
SubWindow 為子視窗)。var sw = new SubWindow();
sw.ShowDialog();
ShowInTaskbar=false、父視窗 true,用戶點擊任務列父視窗可能導致模態視窗隱藏於後,僅能靠 Alt+Tab 切回。var sw = new SubWindow();
sw.Owner = this;
sw.ShowDialog();
| 呼叫方式 | Owner | 父子關係 | 模態 | Z-Order 行為 | 最小化/還原同步 |
|---|---|---|---|---|---|
| Show() | 無 | 無 | 否 | 可互相遮蓋 | 互不影響 |
| Show() | 有 | 有 | 否 | 子永遠在父上方 | 父操作影響子,子不影響父 |
| ShowDialog() | 無 | 無 | 是 | 模態置頂,點父不閃 | 最小化同步,還原不同步 |
| ShowDialog() | 有 | 有 | 是 | 子永遠在父上方,點父閃爍 | 完全同步 |
正確選擇視窗顯示模式與 Owner 設定,是構建符合直覺、體驗良好的 WPF 多視窗應用的基礎。