2010-04-26 116 views
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。

回答

3

我認爲你的問題是ScaleTransform不是可視樹的一部分,因此無法通過{Binding ElementName=ttt}表達式找到。

但是,你可以嘗試使用下面的代碼來代替:

Storyboard.TargetName="ttt" 

希望這個作品。祝你好運!

+1

但爲什麼它不在視覺樹?如果不是,爲什麼Storyboard.TargetName確實有效? 謝謝 – zvi 2010-04-27 13:18:46

+1

ScaleTransform不是FrameworkElement,因此不能用作Binding.ElementName的源代碼。 Storyboard.TargetName的作品,因爲這個屬性也接受除FrameworkElements以外的項目。這種情況下沒有綁定。我認爲唯一的限制是它必須是一個DependencyObject,並且ScaleTransform是一個DependencyObject。但是,我不確定這個... – gehho 2010-04-27 13:29:04

+0

非常有趣,謝謝 – zvi 2010-04-28 06:47:01