[英]Bring dialog window to front
我在按鈕點擊上顯示一個窗口,如下所示:
private void showWindow(object obj)
{
var dialog = new AddItemView();
dialog.Show();
}
如果再次單擊該按鈕,當此窗口仍處於打開狀態時,如何將此窗口置於前面而不創建新窗口?
只需存儲對話框對象並檢查它是否已在showWindow中創建。
使用Windows Closed事件清除對象對象的引用。
AddItemView dialog;
private void showWindow(object obj)
{
if ( dialog == null )
{
dialog = new AddItemView();
dialog.Show();
dialog.Owner = this;
dialog.Closed += new EventHandler(AddItemView_Closed);
}
else
dialog.Activate();
}
void AddItemView_Closed(object sender, EventArgs e)
{
dialog = null;
}
只是一個快速草圖,但這應該做你想要的:
Window1 W = new Window1();
private void Button_Click(object sender, RoutedEventArgs e)
{
if (W.IsVisible)
W.Activate();
else
W.Show();
}
如果不這樣做,也許我誤解了你的問題。
編輯糾正錯誤。
在實例化窗口的類構造函數中添加它。 打開后窗口無法關閉。
W.Closing += (s, e) =>
{
e.Cancel = true;
((Window)s).Hide();
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.