Привязка ElementName - PullRequest
       15

Привязка ElementName

0 голосов
/ 26 апреля 2010

Первый Извините за мой английский. Я хотел спросить, почему 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.

1 Ответ

3 голосов
/ 27 апреля 2010

Я думаю, что ваша проблема в том, что ScaleTransform не является частью дерева визуалов и поэтому не может быть найдено выражением {Binding ElementName=ttt}.

Однако вы можете попробовать использовать следующий код:

Storyboard.TargetName="ttt"

Надеюсь, это работает. Удачи!

...