2

WPF プログレス バーをテストして初期状態にリセットしようとしていますが、機能しません。

Duration duration = new Duration(TimeSpan.FromSeconds(1));
DoubleAnimation doubleanimation = new DoubleAnimation(200.0, duration);
myProgress.IsIndeterminate = true;
myProgress.BeginAnimation(ProgressBar.ValueProperty, doubleanimation);
myProgress.Value = 0;

アニメーションの前は、プログレス バーは静的です (アニメーションなし)。アニメーションの後、プログレス バーの色がライト グレー (以前よりも明るい) になり、フラッシュ効果が明るくなります。

デュレーションとダブル アニメーションにコメントを付けると、プログレス バーは静的なままになります。このダブル アニメーションには何か関係があるようです。

//Duration duration = new Duration(TimeSpan.FromSeconds(1));
//DoubleAnimation doubleanimation = new DoubleAnimation(200.0, duration);
myProgress.IsIndeterminate = true;
//myProgress.BeginAnimation(ProgressBar.ValueProperty, doubleanimation);
myProgress.Value = 10;
myProgress.Value = 0;

この DoubleAnimation の問題を解決するにはどうすればよいですか? ここで何が欠けていますか?

4

2 に答える 2

1

このスレッドを見てください:

C#/WPFでアニメーションを停止するには?

于 2009-12-20T16:40:59.457 に答える
0

代わりに、この形式のDoubleAnimationを使用してください

DoubleAnimation doubleanimation = new DoubleAnimation(0,200, duration);

宛先値だけでなく、from値とtoo値の両方を明示的に設定する場合。

コード:

ウィンドウコンストラクタ内:

myProgress.Maximum = 100; myProgress.Minimum = 0;

次に、ボタンクリックハンドラーで言います

myProgress.IsIndeterminate = false; //shouldn't really need this PB oddity
myProgress.IsIndeterminate = true;
myProgress.Value = 0;

Duration duration = new Duration(TimeSpan.FromSeconds(1));
DoubleAnimation doubleanimation = new DoubleAnimation(0,200, duration);

myProgress.BeginAnimation(ProgressBar.ValueProperty, doubleanimation);

PBはStackPanelにあり、xamlは

<ProgressBar Name="myProgress" Height="20"></ProgressBar>

これは最初にXPでテストされましたが、以下を参照してください

Win 7ソリューションについては、こちらをご覧ください

リンクテキスト

于 2009-12-20T17:14:34.997 に答える