2013-10-02 64 views
1

我正在使用WPF應用程序。我在第一個窗口中有兩個文本框和一個按鈕。基於某些數據庫操作,我需要打開第一個窗口的副本(if就像一個新標籤可能開)提供的兩個窗口可以訪問simultaneously.I使用使用WPF打開同一窗口的副本

var MainWindow = new MainWindow(); 
MainWindow.ShowDialog(); 

var MainWindow = new MainWindow(); 
MainWindow.Show(); 

他們兩個犯規滿足我expectations.Can任何人幫助我。

+1

您已經顯示了兩個相同的代碼示例。 – Sheridan

+0

請勾選您認爲回答您的問題的任何問題,以便其他用戶知道此問題已得到解決。 – Sheridan

回答

1

當您使用ShowDialog()時,它會打開一個單一的模式對話框,預計完成後將關閉。

如果您想要打開多個窗口並且不阻止窗體控件,請嘗試使用Show()來代替。

var window = new MainWindow(); 
window.Show(); 
+0

它正在工作。是否有任何選項將其作爲選項卡式窗口打開? –

+0

不,但如果你想要標籤,你應該有一個'TabControl',把你的窗口改爲'UserControl',並根據需要將控件加載到每個標籤中。 –

0

我建議您閱讀MSDN上的所有相關頁面,以便您可以瞭解所有內容如何工作。

對於Show方法:

打開一個窗口,並返回,而無需等待新打開的窗口關閉。

對於ShowDialog方法:

打開一個窗口,並且當關閉時,新打開的窗口只返回。

Window.Show Method頁面的備註部分:

當Window類實例化時,默認情況下不可見。 Show顯示一個窗口並立即返回,無需等待窗口關閉。因此,打開的窗口不會阻止用戶與應用程序中的其他窗口進行交互。這種類型的窗口稱爲無模式窗口。無模式窗口的常見例子是屬性窗口,工具箱和調色板。要限制用戶與特定窗口進行交互,必須通過調用ShowDialog來打開該窗口。

調用顯示實現與將Window對象的Visibility屬性設置爲Visible相同的最終結果。然而,從時間角度來看,兩者是有區別的。

因此,對於您的解決方案,我建議您使用Show方法。

+0

它正在工作。是否有任何選項將其作爲選項卡式窗口打開? –

+0

什麼是標籤'Window'?如果你的意思是一個'Window',它裏面有一個'TabControl',那麼如何在'Window'內的XAML中添加一個'TabControl'? – Sheridan