给定:控制 (x:Name="border1") 带有VisualStateManager
. 控件的RenderTransform
设置为TransformGroup
包含 a 的 a TranslateTransform
。
在VisualState
“NotShown”中,应将TranslateTransform
sY
属性设置Value
为(至少)正在翻译的控件的高度(有效地使其不可见 -ClipToBounds
设置为 true)。
这是 Blend 生成的代码:
<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>
编辑(2):{Binding ActualHeight, ElementName=border1}
根本不起作用。从 VS 而不是 Blend 运行时,有一个提示:
找不到目标元素的管理 FrameworkElement 或 FrameworkContentElement。绑定表达式:路径=实际高度;数据项=空;目标元素是“EasingDoubleKeyFrame”(HashCode=57957548);目标属性是“值”(类型“双”)
为了这个动画的目的,我该如何正确设置?