指定された期間メッセージを表示してからフェードアウトできるステータスバーを実装したいと考えています。
これは、wpf の既製のコントロールで実行できますか? 私が理解している限り、他のアイテムのコンテナである StatusBar にそのような機能が見つかりません。
助言がありますか?
StatusBar
実際、他のアイテムのコンテナにすぎません。
このような組み込み機能はないと思います。
しかし、あなたがTimer
望むものを達成するために a を使うことができます。
テキスト メッセージを のコンテンツとして設定するメソッドを作成し、StatusBarItem
に時間を設定し、からテキストを削除するイベントを作成しTimer
ます。Timer.Elapsed
StatusBarItem
StatusBar
XAML:
<StatusBar Height="25" Margin="5">
<StatusBarItem x:Name="StatusMessage" />
</StatusBar>
手続きコード:
private void ShowStatusMessage(string message)
{
StatusMessage.Content = message;
var timer = new System.Timers.Timer();
timer.Interval = 2000; //2 seconds
timer.Elapsed += delegate(object sender, System.Timers.ElapsedEventArgs e)
{
//stop the timer
timer.Stop();
//remove the StatusMessage text using a dispatcher, because timer operates in another thread
this.Dispatcher.BeginInvoke(new Action(() =>
{
StatusMessage.Content = "";
}));
};
timer.Start();
}
アニメーション化する場合は、探す必要がありますDoubleAnimation
プログレスバーにデータをバインドし、フェードアウトするたびに更新するだけです。より良いソリューションを提供するための詳細をお知らせください