C# WPF 标签未在(空闲)GUI 上正确更新
C# WPF label not updating properly on (idle) GUI
所以我正在尝试制作一个计时器系统,但无论出于何种原因,当您将鼠标移到应用程序的 GUI 屏幕上时,标签会停止更新。
显示问题的 Gif:
https://i.imgur.com/Jvi1AgF.gifv
这是我尝试过的另一个例子中发生的情况。
然而,在我的示例中,情况恰恰相反。它仅在 GUI 更新时更新。我不知道如何解决这个问题。
GIF:https://i.imgur.com/KezAVaj.gifv
public partial class MainWindow : Window
{
Stopwatch _stopwatch;
DispatcherTimer _timer;
public MainWindow()
{
InitializeComponent();
_stopwatch = new Stopwatch();
_timer = new DispatcherTimer();
_timer.Interval = new TimeSpan(10);
_timer.Tick += new EventHandler(Tick);
}
private void Tick(object sender, EventArgs e)
{
LabelTime.Content = _stopwatch.Elapsed.ToString(@"m\:ss\.ff");
}
private void Button_Click(object sender, RoutedEventArgs e)
{
_stopwatch.Start();
_timer.Start();
}
}
改变
_timer = new DispatcherTimer();
至
_timer = new DispatcherTimer(DispatcherPriority.Render);
已解决问题。
所以我正在尝试制作一个计时器系统,但无论出于何种原因,当您将鼠标移到应用程序的 GUI 屏幕上时,标签会停止更新。
显示问题的 Gif: https://i.imgur.com/Jvi1AgF.gifv 这是我尝试过的另一个例子中发生的情况。
然而,在我的示例中,情况恰恰相反。它仅在 GUI 更新时更新。我不知道如何解决这个问题。
GIF:https://i.imgur.com/KezAVaj.gifv
public partial class MainWindow : Window
{
Stopwatch _stopwatch;
DispatcherTimer _timer;
public MainWindow()
{
InitializeComponent();
_stopwatch = new Stopwatch();
_timer = new DispatcherTimer();
_timer.Interval = new TimeSpan(10);
_timer.Tick += new EventHandler(Tick);
}
private void Tick(object sender, EventArgs e)
{
LabelTime.Content = _stopwatch.Elapsed.ToString(@"m\:ss\.ff");
}
private void Button_Click(object sender, RoutedEventArgs e)
{
_stopwatch.Start();
_timer.Start();
}
}
改变
_timer = new DispatcherTimer();
至
_timer = new DispatcherTimer(DispatcherPriority.Render);
已解决问题。