与えられます:VisualStateManager
のControl(x:Name = "border1")コントロールのRenderTransform
は、TranslateTransform
を含むTransformGroup
に設定されています。 VisualState
でTranslateTransform.Yをコントロールの高さにアニメーション化します(目的は視界から要素をスライドさせることです)
「は図示せず」、TranslateTransform
S Y
プロパティは(事実上不可視にレンダリング - trueに設定ClipToBounds
)(少なくとも)コントロールの高さが翻訳されてValue
にアニメーション化されるべきです。
これは、コードのブレンドが生成される:
<VisualState x:Name="NotShown">
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" Storyboard.TargetName="border1">
<EasingDoubleKeyFrame KeyTime="0" Value="{Binding ActualHeight, ElementName=border1}"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
EDITは(2):{Binding ActualHeight, ElementName=border1}
はまったく動作しません。 VS代わりのブレンドから実行すると、ヒントがあります:
は ターゲット要素のためのFrameworkElementまたはFrameworkContentElementのを規制する見つけることができません。 BindingExpression:Path = ActualHeight; DataItem = null; ターゲット要素は 'EasingDoubleKeyFrame'(HashCode = 57957548)です。ターゲットは プロパティは '値'(タイプ 'Double')
このアニメーションの目的のために正しく設定するにはどうすればよいですか?
私が以前に気づいていなかったVS出力を含む、間違っているかもしれないことについての推測を変更しました。 – user1282998
更新:EasingDoubleKeyFrameをborder1のリソースにしました。少なくともバインディングは機能しています。もっと来る... – user1282998
...と意図して動作します。 そのコードを生成するためにBlendを責めることができますか? – user1282998