wpf でキャンバスに四角形を配置しました。この四角形に「FrameworkElement.With」を使って doubleAnimation を与えました。アニメーション終了後に長方形の幅を変更しようとしても、変更されません。理由はわかりますか?
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 に答える