既存のアプリケーションを修正していますが、いくつかの奇妙な問題で立ち往生しています。
GUI の一部で、時間がかかる操作がありました。そこでWait
、簡単なメッセージPlease wait...
を名前に付けた小さなウィンドウを作成しました。Show/Hide
そして、必要なときにウィンドウを単純にします。
しかし、ここに問題があります。2 回目にウィンドウを表示すると、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
が、効果はありませんでした。
これを解決する方法についての答え以上に、なぜこれが起こっているのかを理解したいですか?