在C#的WPF应用程序中,窗体(即继承自System.Windows.Window
的类)能够通过处理以下事件来响应显示、最小化、最大化和关闭操作:
1.显示:
窗体显示时没有直接对应的事件,但你可以通过覆盖OnLoaded
方法或订阅Loaded
事件来实现在窗体加载完成并显示时执行某些操作。
public MyWindow()
{
InitializeComponent();
Loaded += MyWindow_Loaded;
}
private void MyWindow_Loaded(object sender, RoutedEventArgs e)
{
// 在这里放置窗体显示时要执行的代码
}
2.最小化:
可以通过订阅StateChanged
事件并检查WindowState
属性来检测窗体是否变为最小化状态。
public MyWindow()
{
InitializeComponent();
StateChanged += MyWindow_StateChanged;
}
private void MyWindow_StateChanged(object sender, EventArgs e)
{
if (WindowState == WindowState.Minimized)
{
// 窗体被最小化时执行的代码
}
}
3.最大化:
同样,通过StateChanged
事件来检测窗体是否变为最大化状态。
private void MyWindow_StateChanged(object sender, EventArgs e)
{
if (WindowState == WindowState.Maximized)
{
// 窗体被最大化时执行的代码
}
}
4.关闭:
可以通过订阅Closing
或Closed
事件来处理窗体关闭前后的逻辑。
-
Closing
事件在窗体开始关闭过程时触发,此时还可以取消关闭操作。
public MyWindow()
{
InitializeComponent();
Closing += MyWindow_Closing;
}
private void MyWindow_Closing(object sender, CancelEventArgs e)
{
// 可以在这里决定是否取消关闭操作
// e.Cancel = true; // 设置为true将取消关闭
// 窗体关闭前执行的代码
}
-
Closed
事件在窗体已经关闭后触发,不能取消关闭操作。
public MyWindow()
{
InitializeComponent();
Closed += MyWindow_Closed;
}
private void MyWindow_Closed(object sender, EventArgs e)
{
// 窗体已经关闭后执行的代码
}