0

次のようにドックパネルのサイズを変更します。

Private WithEvents PanelAnimation As New DoubleAnimation
Private WithEvents PanelSB As New Storyboard

With PanelAnimation
        .From = WpfDockPanel.ActualHeight
        .To = s
        .Duration = New Duration(TimeSpan.FromSeconds(0.5))
        .AccelerationRatio = 0.5
        .DecelerationRatio = 0.5
End With
PanelSB.Children.Add(PanelAnimation)
Storyboard.SetTarget(PanelAnimation, WpfDockPanel)
Storyboard.SetTargetProperty(PanelAnimation, New PropertyPath(DockPanel.HeightProperty))
PanelSB.Begin(AviMainWindow)

..うまくいきます。次に、サイズを手動で設定したいのですが、変更されません。コードを停止して別のサイズを入力すると、サイズは変更されず、読み取り専用のようになります。

しかし、アニメーションではなく、サイズを設定するだけでサイズを一度変更すると、問題なく再度変更できます。アニメーション後に手動で高さを設定できないのはなぜですか?

ありがとう

4

2 に答える 2

2

これは、アニメーションのFillBehaviorが既定で に設定されているためHoldEndです。に設定できますStop

ただしHeight、アニメーションを開始する前に、アニメーション ターゲットのプロパティを目的の終了値に手動で設定する必要もあります。そうしないと、アニメーションが開始される前の値に戻ります。

With PanelAnimation
        .FillBehavior = FillBehavior.Stop
        ...

...
WpfDockPanel.Height = s
PanelSB.Begin(AviMainWindow)
于 2012-10-23T09:51:52.247 に答える
0

おそらく、アニメーションによって適用された値を削除する必要があります。何かのようなもの

WpfDockPanel.BeginAnimation(DockPanel.HeightProperty, null)

トリックを行う必要があります。

于 2012-10-23T09:54:03.593 に答える