首先在主窗體中將菜單關聯的窗體實例化。
第二步:將每個菜單對應窗體的closing事件重寫。之所以要重寫closing事件,是因為在菜單對應的窗口關閉之后,再次打開就會報錯
第三步:在主窗體中菜單事件里面進行判斷處理
示例:
public partial class main : Window
{
//實例化關聯的窗口
MainWindow m = new MainWindow();
public main()
{
InitializeComponent();
}
//事件調用
private void button_Click(object sender, RoutedEventArgs e)
{
if (m == null || m.IsVisible == false)
{
m.Show();
}
else
{
m.Activate();
m.WindowState = WindowState.Normal;
}
}
//重寫Closing方法
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
this.Hide();
e.Cancel = true;
}
}
如果有朋友找到了更好的方法,望賜教和分享。