Как заставить WPF TextBlock вращаться всякий раз, когда его значение обновляется? - PullRequest
1 голос
/ 04 марта 2011

Я пытаюсь вращать TextBlock на 360 градусов всякий раз, когда он связывает обновления.

Из всего, что я прочитал, должно работать следующее, однако это не имеет никакого эффекта.Что я делаю не так?

<TextBlock VerticalAlignment="Center" Text="{Binding Total, NotifyOnTargetUpdated=True}">

    <TextBlock.RenderTransform>
        <RotateTransform x:Name="TotalSpinTransform" Angle="0"/>
    </TextBlock.RenderTransform>

    <TextBlock.Triggers>
        <EventTrigger RoutedEvent="Binding.TargetUpdated">
            <EventTrigger.EnterActions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetProperty="(TextBlock.RenderTransform).(RotateTransform.Angle)" 
                            From="0" To="360" Duration="0:0:0.2" AutoReverse="True"/>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger.EnterActions>
        </EventTrigger>
    </TextBlock.Triggers>

</TextBlock>       

1 Ответ

4 голосов
/ 04 марта 2011

Ни EnterActions, ни ExitActions не применимы к EventTrigger.К сожалению, эти свойства определены на TriggerBase, поэтому они присутствуют на EventTrigger.Попробуйте это:

    <EventTrigger RoutedEvent="Binding.TargetUpdated">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation Storyboard.TargetProperty="(TextBlock.RenderTransform).(RotateTransform.Angle)" 
                        From="0" To="360" Duration="0:0:0.2" AutoReverse="True"/>
                </Storyboard>
            </BeginStoryboard>
    </EventTrigger>
...