WPF一次性开启两个窗口

        我们知道,WPF启动窗口是在App.xaml中定义的。

<Application x:Class="TCPClient.App" 
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
             StartupUri="MainWindow.xaml">
    <Application.Resources>

    </Application.Resources>
</Application>

        但是有时候,比如做TCP通信的时候,我们希望能同时开启客户端和服务端,这时候就需要同时开启两个窗口了,还是在App.xaml中,不过是在它的类函数App.xaml.cs中,重写它的OnStartup函数,new一个新窗口出来,再使用窗口的show方法即可。

        /// <summary>
        /// 重写OnStartup函数
        /// </summary>
        /// <param name="e"></param>
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
            ServerWindow serverWindow = new ServerWindow();
            serverWindow.Show();

        }

        为了保证程序的稳健运行,我们也可以在函数中加入异常处理,修改后的代码如下:

        /// <summary>
        /// 重写OnStartup函数
        /// </summary>
        /// <param name="e"></param>
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
            // 保证程序的稳健运行,对程序中未知的异常进行处理
            //DispatcherUnhandledException += App_DispatcherUnhandledException;
            ServerWindow serverWindow = new ServerWindow();
            serverWindow.Show();

        }

        private void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
        {
            // 修改异常处理标记
            e.Handled = true;
            string errMsg = e.Exception.Message.ToString();
            MessageBox.Show("处理了一个异常,信息[" + errMsg + "]");
        }

  

 

posted @ 2023-11-07 10:20  夜落璇玑  阅读(548)  评论(0)    收藏  举报