我在点击按钮时显示一个窗口:
private void showWindow(object obj)
{
var dialog = new AddItemView();
dialog.Show();
}
如果再次单击该按钮,当此窗口仍处于打开状态时,如何将此窗口置于前面而不创建新窗口?
答案 0 :(得分:2)
只需存储对话框对象并检查它是否已在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;
}
答案 1 :(得分:0)
只是一个快速草图,但这应该做你想要的:
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();
};