WPF主窗口显示

发布时间 2023-05-05 17:41:02作者: smile908

我需要完成这样的一个功能,程序在运行期间时刻检测一个值的变化,当这个值变化后,立即将主窗口进行运行,用户可以进行操作。

目前做的demo是这样的,来证明这个方法的可行性。我写了一个主窗口,当这个窗口最小化五秒后,又在屏幕上可见。

public partial class MainWindow : Window
{
private DispatcherTimer timer;

public MainWindow()
{
InitializeComponent();
timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(5);
timer.Tick += Timer_Tick;
}

private void Window_StateChanged(object sender, EventArgs e)
{
if (WindowState == WindowState.Minimized)
{
timer.Start();
}
}

private void Timer_Tick(object sender, EventArgs e)
{
timer.Stop();
WindowState = WindowState.Normal;
Activate(); // bring window to front
}
}

不过要注意的是,Window_StateChanged这个方法得引用。我们可以在Mainwindow.cs.xaml中加上这样的一句。

   StateChanged="Window_StateChanged"

 

这样我们这个功能就完成了,我在使用了一个计时器,在窗口最小化的时候,我们开启计时器,当计时器计时到五秒后,

计时器停止,窗口进行一个恢复并运行。