3

指定された期間メッセージを表示してからフェードアウトできるステータスバーを実装したいと考えています。

これは、wpf の既製のコントロールで実行できますか? 私が理解している限り、他のアイテムのコンテナである StatusBar にそのような機能が見つかりません。

助言がありますか?

4

2 に答える 2

4

StatusBar実際、他のアイテムのコンテナにすぎません。
このような組み込み機能はないと思います。

しかし、あなたがTimer望むものを達成するために a を使うことができます。

テキスト メッセージを のコンテンツとして設定するメソッドを作成し、StatusBarItemに時間を設定し、からテキストを削除するイベントを作成しTimerます。Timer.ElapsedStatusBarItem

StatusBarXAML:

<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

于 2013-01-17T18:44:30.783 に答える
-1

プログレスバーにデータをバインドし、フェードアウトするたびに更新するだけです。より良いソリューションを提供するための詳細をお知らせください

于 2013-01-17T17:30:29.170 に答える