不,您不能将动画绑定到Margin
,因为它没有定义相应的依赖属性。有几种选择,这里有两个:
- 将您的对象放在画布中并设置动画
Canvas.Left
和Canvas.Top
- 在您的对象上定义 a ,并为其和属性
RenderTransform
设置动画。X
Y
1)
<Canvas>
<TextBlock Text="test" x:Name="ReferenceInfo" Canvas.Left="0" Canvas.Top="0" />
</Canvas>
在这里,您的故事板简短目标是相同的元素ReferenceInfo
,但目标是附加的属性,您使用括号表示,如“(Canvas.Left)”:
<DoubleAnimation
Storyboard.TargetName="ReferenceInfo"
Storyboard.TargetProperty="(Canvas.Left)" Duration="0:0:0.15"
To="{Binding Width}"/>
2)
<TextBlock Text="test" x:Name="ReferenceInfo">
<TextBlock.RenderTransform>
<TranslateTransform x:Name="TranslateReferenceInfo" X="0" Y="0" />
</TextBlock.RenderTransform>
</TextBlock>
然后动画将TranslateTransform
通过名称引用自身:
<DoubleAnimation
Storyboard.TargetName="TranslateReferenceInfo"
Storyboard.TargetProperty="X" Duration="0:0:0.15"
To="{Binding Width}"/>