ホームページ > バックエンド開発 > C#.Net チュートリアル > WPF で単純な進行状況バーを実装するにはどうすればよいですか?

WPF で単純な進行状況バーを実装するにはどうすればよいですか?

零下一度
リリース: 2017-06-23 15:17:55
オリジナル
4568 人が閲覧しました

最近あるプロジェクトに取り組んでいたのですが、前の同僚が書いたプログレスバーが非常に効果的だったので、それを簡略化しました。目障りではありませんが、それでもプロジェクトでは役に立ちます。

それでも、最初に呼び出し後の効果を見てみましょう

1. ProgressbBar の前景表示は同じである必要があるため、コントロールを設定するパラメーターが必要です。したがって、パラメーター値 ForegroundColor

public int ForegroundColor
{get{return _foregroundColor;
    }set{
        _foregroundColor = value;
        LinearGradientBrush lgb = dictionary["ForegroundColor" + value] as LinearGradientBrush;if (lgb != null)
            proBar.Foreground = txt.Foreground = percent.Foreground = lgb;
    }
}
ログイン後にコピー
は定義されています

コード内に「LinearGradientBrush lgb = Dictionary["ForegroundColor" + value] as LinearGradientBrush;」というような文がありますが、これはこのパラメータを使用してスタイル ファイルからスタイルを取得することを容易にするためです。

<LinearGradientBrush x:Key="ForegroundColor1" EndPoint="1,0.5" StartPoint="0,0.5"><GradientStop Color="#FFBBF586" Offset="0.5"/><GradientStop Color="#FFD4F9C3" Offset="1"/></LinearGradientBrush><LinearGradientBrush x:Key="ForegroundColor2" EndPoint="1,0.5" StartPoint="0,0.5"><GradientStop Color="#FF5BE26E" Offset="0.5"/><GradientStop Color="#FF8DEC9C" Offset="1"/></LinearGradientBrush><LinearGradientBrush x:Key="ForegroundColor3" EndPoint="1,0.5" StartPoint="0,0.5"><GradientStop Color="#FFB656F2" Offset="0.5"/><GradientStop Color="#FFAE8DFE" Offset="1"/></LinearGradientBrush><LinearGradientBrush x:Key="ForegroundColor4" EndPoint="1,0.5" StartPoint="0,0.5"><GradientStop Color="#FF3AE9E9" Offset="0.5"/><GradientStop Color="#FF8DFDFE" Offset="1"/></LinearGradientBrush>
ログイン後にコピー

2. ProgressBar なので、この値を表示するために TextBlock を使用して、ページへのリアルタイム通知を確保する必要があります。

public string ValueText
{get{return _valueText;
    }set{
        _valueText = value;if (this.PropertyChanged != null)
        {this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs("ValueText"));
        }
    }
}
ログイン後にコピー

3. バックグラウンドスレッドを有効にして進行状況エフェクトを継続的に更新します

private void Bgw_DoWork(object sender, DoWorkEventArgs e)
{for (int i = 0; i < BarValue; i++)
    {
        System.Threading.Thread.Sleep(50);
        proBar.Dispatcher.Invoke(new Action(                                     delegate{if (proBar.Value <= BarValue)
            {
                proBar.Value++;
            }
        }));
        ValueText = i + "";
    }
    ValueText = BarValue + "";
}
ログイン後にコピー

ソースコード

以上がWPF で単純な進行状況バーを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート