WPF 單例窗口


首先在主窗體中將菜單關聯的窗體實例化。

第二步:將每個菜單對應窗體的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;
        }
    }

如果有朋友找到了更好的方法,望賜教和分享。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM