我正在修复一个已经存在的应用程序,但遇到了一些奇怪的问题。
在我们的 GUI 的某些部分,我们的操作需要一些时间。所以我们创建了一个小窗口,里面Wait
有一条简单的消息Please wait...
。我们只是Show/Hide
在需要时打开窗口。
但问题就在这里。我们第二次显示窗口时,Please wait...
Label
不显示 in。
Wait.xaml:
<Window x:Class="WpfApplication1.Wait"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Wait" SizeToContent="WidthAndHeight">
<StackPanel>
<Label>Please wait...</Label>
</StackPanel>
</Window>
Wait.xaml.cs
public partial class Wait : Window
{
public Wait()
{
InitializeComponent();
}
}
最后我只是在一个最小的 WPF 应用程序中尝试这个:
// The window is shown perfectly
m_WaitWindow.Show();
Thread.Sleep(5000);
m_WaitWindow.Hide();
Thread.Sleep(2000);
// The label is not shown, the window is empty
m_WaitWindow.Show();
Thread.Sleep(5000);
m_WaitWindow.Hide();
我不知道如何解决这个问题,我尝试了很多类似UpdateLayout
之后的东西Show
但没有效果。
不仅仅是关于如何解决这个问题的答案,我想了解为什么会发生这种情况?