私はCMを使用するWPFプロジェクトを持っています。私はスムーズにアニメートしたいプログレスバーを持っています。私はDoubleAnimationを含むストーリーボードを持っています。問題は、DoubleAnimationのDurationをビューモデルのプロパティにバインドしようとすると、プログラムの実行中にTargetInvocationExceptionが発生することです。DoubleAnimationの持続時間にバインドするとTargetInvocationExceptionがスローされます
プログレスバーのXAMLは次のようになります。
<ProgressBar Name="ProgressBar" Width="400" Height="18">
<ProgressBar.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsMeasuring}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.Target="{Binding TemplatedParent}"
Storyboard.TargetProperty="Value"
From="0"
To="100"
Duration="{Binding MeasurementDuration}"
/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</ProgressBar.Style>
</ProgressBar>
私の見解モデルのプロパティは次のようになりますが:私は答えは私をまっすぐに見つめていると感じてい
private Duration measurementDuration = new Duration(TimeSpan.FromSeconds(1));
public Duration MeasurementDuration
{
get { return measurementDuration; }
private set
{
measurementDuration = value;
NotifyOfPropertyChange(() => MeasurementDuration);
}
}
、私はそれを見つけることができません。助けを前にありがとう。
に関しては、私はアニメーションが実行されている間、期間を変更するつもりはありませんよ。私がしたいことは、バインディングを使用してアニメーションの期間を設定し、その後アニメーションを開始することです。これは可能なはずですが、私が試した組み合わせはうまくいきませんでした。 –
ねえ。あなたがDuration-Bindingではないという例外があります。問題はStoryboard.TargetNameです。テンプレート以外のスタイルでStoryboard.TargetNameを使用することはできません。 http://msdn.microsoft.com/en-us/library/ms742868.aspx(#alignスタイルでアニメーション) Storyboard.TargetName-Propertyを設定せずにあなたのソリューションを試してみるとうまくいくはずです。 – Shounbourgh
私はそれが問題だとは思わない。 Storyboard.Targetセットと静的持続時間でうまく動作します。期間を追加すると直ちに停止します。しかし、リンクをありがとう、役に立つと思われる。 –