WPF TextBlock ColorAnimation - PullRequest
       1

WPF TextBlock ColorAnimation

3 голосов
/ 06 июля 2011

Я совершенно новичок в WPF-анимации, и на данный момент у меня большие проблемы с этим.

У меня есть TextBlock, для которого, поскольку свойство моей модели представления имеет определенное значение, я хочу запустить ColorAnimation для его фона. Когда значение моего свойства изменится, я хочу, чтобы цвет фона для моего TextBlock вернулся к исходному (возможно, прозрачному). Вот что я обнаружил до сих пор, но он все еще не работает, как я описал.

<TextBlock Text="{Binding DatabaseTasks.Count, StringFormat= 'Count: {0}'}" VerticalAlignment="Center" Background="Transparent">
                    <TextBlock.Style>
                        <Style TargetType="TextBlock">
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding IsIdle}" Value="False">
                                    <DataTrigger.EnterActions>
                                        <BeginStoryboard>
                                            <Storyboard Storyboard.TargetProperty="(TextBlock.Background).(SolidColorBrush.Color)">
                                                <ColorAnimation  RepeatBehavior="Forever"
                                                                 FillBehavior="Stop"
                                                                 From="Red"
                                                                 To="Transparent"
                                                                 By="Blue"
                                                                 Duration="0:0:0.5" />
                                            </Storyboard>
                                        </BeginStoryboard>
                                    </DataTrigger.EnterActions>
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </TextBlock.Style>
                </TextBlock>

Кто-нибудь может это исправить?

Заранее спасибо!

EDIT: Привязка работает просто отлично, и я протестировал ее с помощью простого DataTrigger, который просто меняет цвет фона. Моя проблема в том, что анимация не останавливается и возвращается к оригинальному цвету. Я уверен, что что-то упустил.

1 Ответ

5 голосов
/ 06 июля 2011

Добавление тега RemoveStoryboard должно сделать это.

<Style TargetType="TextBlock">                            
                    <Style.Triggers>                                 
                    <DataTrigger Binding="{Binding IsIdle}" Value="False">                                     
                        <DataTrigger.EnterActions>                                         
                            <BeginStoryboard x:Name="tt" >                                             
                                <Storyboard Storyboard.TargetProperty="(TextBlock.Background).(SolidColorBrush.Color)">                                                 
                                    <ColorAnimation  RepeatBehavior="Forever"                                                                  
                                                     FillBehavior="Stop"                                                                  
                                                     From="Red"                                                                  
                                                     To="Transparent"                                                                  
                                                     By="Blue"                                                                  
                                                     Duration="0:0:0.5" />                                             
                                </Storyboard>                                         
                            </BeginStoryboard>
                           </DataTrigger.EnterActions>                                
                         <DataTrigger.ExitActions>       
                            <RemoveStoryboard  BeginStoryboardName="tt"></RemoveStoryboard>
                        </DataTrigger.ExitActions> 
                    </DataTrigger>                          
                </Style.Triggers>                         
               </Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...