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