0
首先對不起我的英文。 我想問爲什麼元素名不工作的第一個案件,並在第二個工作。綁定元素名稱
我給出了兩段代碼。該firts不行
<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。
但爲什麼它不在視覺樹?如果不是,爲什麼Storyboard.TargetName確實有效? 謝謝 – zvi 2010-04-27 13:18:46
ScaleTransform不是FrameworkElement,因此不能用作Binding.ElementName的源代碼。 Storyboard.TargetName的作品,因爲這個屬性也接受除FrameworkElements以外的項目。這種情況下沒有綁定。我認爲唯一的限制是它必須是一個DependencyObject,並且ScaleTransform是一個DependencyObject。但是,我不確定這個... – gehho 2010-04-27 13:29:04
非常有趣,謝謝 – zvi 2010-04-28 06:47:01