我不會有三個窗口作爲應用程序的屬性。我會立即登錄一個登錄窗口的副本,並將其作爲我的中心控制點。
當用戶登錄時,隱藏登錄窗口,顯示一個新的主窗口並在主窗口Closed事件中添加一個鉤子。
e.g
if (logonSuccess)
{
var mainWindow = new MainWindow();
mainWindow.Closed += ReshowSignupWindow;
}
我也不得不在登錄窗口中執行了創建賬戶的窗口相同。因此,我會將創建帳戶窗口返回到註冊窗口,該窗口既可以重新顯示自身,也可以在創建帳戶時啓動主窗口。
例如爲:
// In sign-in window, handle the create window being closed
private void CreateWindowClosedHandler(object sender, EventArgs e)
{
if (accountCreatedOK)
{
ShowMainWindow();
}
else
{
ReshowSignupWindow();
}
}
我可能會看具有如通過對ShowDialog()
呼叫的對話窗口中創建帳戶窗口。
希望幫助...
的問題是確實不壞,但像計算器的平臺上很難,所以我怕你不會得到良好的擬合的答案。至少有一些想法:爲什麼窗口必須是應用程序類的屬性?如果他們是模態對話框,他們應該創建就地,然後直接破壞(當然主窗口除外)。不,關閉和加載顯然不是最好的主意,因爲所有者窗口尚未顯示。只需在需要的地方創建對話框,並將當前的模式窗口設置爲所有者。 – dowhilefor 2012-08-01 08:28:18