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 + "]");
}

浙公网安备 33010602011771号