這是一個WPF/C#應用程序,與代碼問題相比,我有更多的設計問題。在沒有觸發Window_Closed事件的情況下關閉窗口
我有5個獨立的* .xaml文件實現從窗口派生的類。所以,5個窗口。這是一種嚮導類型的應用程序,因此每個窗口都有後退/下一個按鈕,這些按鈕將創建一個新窗口,隱藏自身並顯示新窗口。
這不是純粹基於引導的(所以我沒有使用的頁面),因爲有時我想跳過一個窗口,或者回到第一個窗口,等
每次打開一個新的窗口時間父窗口將自己設置爲新窗口的所有者並隱藏自身。當使用後退按鈕時,新窗口顯示所有者並自行關閉。這適用於導航。
當有人真正關閉窗口而不是使用導航時,我遇到問題。如果他們關閉窗口,Alt-F4,擊中X等,它應該關閉整個應用程序。
我的'返回'按鈕也關閉窗口,該窗口觸發Window_Closed,關閉整個應用程序。
我想要一個關閉整個應用程序的方式,當用戶關閉窗口,但只關閉窗口(不隱藏它,實際處置它),並顯示所有者時,他們點擊回來。如果不觸發前者,我似乎無法做到後者。
有什麼建議嗎?我只是沒有想到這是正確的方式。
我看着使用導航,實際上觀看了特定的視頻。這真的不是我想要的。這具有更多的網頁導航功能,並可讓您在頁面之間跳轉。在每種情況下,我都有非常明確的「後退」和「下一個」的規則 - 他們可能跳過頁面或根據上下文運行代碼。 我也在我的5個窗口中使用usercontrols,他們本質上是1個或更多的用戶控件,所以這可能值得研究。我不得不將邏輯放回控制檯,然後放到窗口中,但這可能是值得的 – Eric
@ user783106 - 是的,您需要將後/下一個彈出到主窗口中,然後移出您的託管控制。當他們點擊返回/下一步時,您可以使用任何規則選擇下一個用戶控件。如果您不想使用導航,請自行切換可見性。 –
但只是一個側面說明,你可以使用導航規則。有一個名爲NavigateTo的方法(「頁面的字符串名稱」)。當他們點擊一個按鈕時,在代碼隱藏中,您將運行任何需要確定下一頁的邏輯。當您準備好顯示它時,只需調用NavigateTo()傳遞下一頁的名稱(如果需要,可以是完全動態的)。 –