wpf でキャンバスに四角形を配置しました。この四角形に「FrameworkElement.With」を使って doubleAnimation を与えました。アニメーション終了後に長方形の幅を変更しようとしても、変更されません。理由はわかりますか?
質問する
160 次
1 に答える
0
アニメーションが変更され、優先度の高い値が保持されるため、通常の設定値は機能しません。Dependency Property Value Precedenceの詳細については、Microsoft ドキュメントを参照してください。
アニメーション プロパティの値を変更するには、2 つの異なる方法があります。
1位。To
アニメーションプロパティを割り当てない
以下の方法でアニメーションを作成する場合は、To
プロパティを削除する必要があります。
<DoubleAnimation Storyboard.TargetName="element" Storyboard.TargetProperty="Width"
From="0" To="100" Duration="0:0:1" />
削除しTo
ます。
<DoubleAnimation Storyboard.TargetName="element" Storyboard.TargetProperty="Width"
From="0" Duration="0:0:1" />
アニメーションを開始しようとしているときは、次のように呼び出します。
storyboard.Begin();
element.Width = 100;
このようにして、ストーリーボードが開始さWidth
れ、最後に設定した値にアニメーション化されます。
2番目。Width
プロパティからアニメーションを削除します
ストーリーボードまたはアニメーションが完了するたびに、別のnull
アニメーションを開始して、優先度の高いWidth
プロパティの値を削除します。
element.BeginAnimation(WidthProperty, null);
于 2018-09-12T11:57:08.950 に答える