Tan
Tan

Reputation: 2178

Blinking TextBlock

Hi iam trying to make an Wpf TextBlock to blink. I want like when im clicking on an button then the textblock blinks. How can i achive this.

I have tried the following.

<TextBlock Name="txtBlockScannerText" Margin="10,0,0,0" Style="{StaticResource TextBlockNormal}" Text="Skanna Inleverans listan">
    <TextBlock.Triggers>
        <EventTrigger RoutedEvent="TextBlock.MouseEnter">
            <EventTrigger.Actions>
                <BeginStoryboard>
                    <Storyboard BeginTime="00:00:00" RepeatBehavior="Forever" Storyboard.TargetName="txtBlockScannerText" Storyboard.TargetProperty="(Foreground).(SolidColorBrush.Color)">
                        <ColorAnimation From="Black" To="Red" Duration="0:0:1"/>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger.Actions>
        </EventTrigger>
    </TextBlock.Triggers>
</TextBlock>

But with this code it only blinks when my mouse enter it. How can i trigger the blink in an button click event. Or how do i call the event to blink. Thanks for help

Upvotes: 4

Views: 22373

Answers (3)

Wallstreet Programmer
Wallstreet Programmer

Reputation: 9677

There's no click event on a TextBlock. If you use a button with the textblock as content you can hook up your animation to the button's click event. You may need to style the button to remove 3D look or what else you may choose as default style for your buttons.

Upvotes: 5

Sudhakar Vedam
Sudhakar Vedam

Reputation: 71

Here is the solution

<TextBlock Name="txtBlockScannerText" Margin="10,0,0,0"  Text="WELCOME"> </TextBlock>
        <Button Content="Click Me" Height="23" HorizontalAlignment="Left" Margin="225,43,0,0" Name="button1" VerticalAlignment="Top" Width="75">
            <Button.Triggers>
                <EventTrigger RoutedEvent="Button.Click">
                    <EventTrigger.Actions>
                        <BeginStoryboard>
                            <Storyboard BeginTime="00:00:00" 
                                        RepeatBehavior="Forever" 
                                        Storyboard.TargetName="txtBlockScannerText" 
                                        Storyboard.TargetProperty="(Foreground).(SolidColorBrush.Color)">
                                 <ColorAnimation From="Black" To="Blue" Duration="0:0:1"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger.Actions>
                </EventTrigger>
            </Button.Triggers>
        </Button>

Upvotes: 7

Thomas Levesque
Thomas Levesque

Reputation: 292415

Make your trigger listen to the Loaded event rather than the MouseEnter event...

<EventTrigger RoutedEvent="TextBlock.Loaded">

Upvotes: 5

Related Questions