首先抱歉我的英语。 我想问为什么ElementName不适用于第一种情况,并且在第二种情况下工作。
我给出了两段代码。这些事情不起作用
<Button
Name="button1" Width="100" >
<Button.LayoutTransform>
<ScaleTransform x:Name="ttt" ScaleX="3" ScaleY="6"/>
</Button.LayoutTransform>
<Button.Triggers>
<EventTrigger RoutedEvent="Path.Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard RepeatBehavior="Forever">
<DoubleAnimation
Storyboard.Target="{Binding ElementName=ttt}"
Storyboard.TargetProperty="ScaleX"
From="10"
To="5"
Duration="0:0:1"
/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Button.Triggers>
Button
</Button>
但它确实有用
<Button
Name="button1" Width="100" >
<Button.LayoutTransform>
<ScaleTransform x:Name="ttt" ScaleX="3" ScaleY="6"/>
</Button.LayoutTransform>
<Button.Triggers>
<EventTrigger RoutedEvent="Path.Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard RepeatBehavior="Forever">
<DoubleAnimation
Storyboard.Target="{Binding ElementName=button1}"
Storyboard.TargetProperty="Width"
From="100"
To="50"
Duration="0:0:1"
/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Button.Triggers>
Button
</Button>
我知道我可以使用Storyboard.TargetName。
答案 0 :(得分:3)
我认为你的问题是ScaleTransform
不是Visual Tree的一部分,因此{Binding ElementName=ttt}
表达式无法找到它。
但是,您可以尝试使用以下代码:
Storyboard.TargetName="ttt"
希望这有效。祝你好运!