Search code examples
c#wpftextblockunderline

TextBlock text underline with different color when mouse over


I would like to color a Textblock text with a different color than the font color when the mouse is over text.

How to do that other than creating a custom control?

<TextBlock Text="5000.00" FontSize="20" >
            <!--<TextBlock.TextDecorations>
                <TextDecoration Location="Underline">
                    <TextDecoration.Pen>
                        <Pen Brush="Green"></Pen>
                    </TextDecoration.Pen>
                </TextDecoration>
            </TextBlock.TextDecorations>-->
       <TextBlock.Style>
            <Style TargetType="TextBlock">
                <Style.Triggers>
                    <Trigger Property ="IsMouseOver" Value="True">
                        <Setter Property= "Foreground" Value="Black"/>
                        <Setter Property="TextDecorations" Value="Underline" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </TextBlock.Style>
    </TextBlock>

Solution

  • <TextBlock Text="5000.00" FontSize="20" >
        <TextBlock.Style>
            <Style TargetType="TextBlock">
                <Style.Triggers>
                    <Trigger Property ="IsMouseOver" Value="True">
                        <Setter Property="TextDecorations">
                            <Setter.Value>
                                <TextDecorationCollection>
                                    <TextDecoration Location="Underline">
                                        <TextDecoration.Pen>
                                            <Pen Brush="Red"/>
                                        </TextDecoration.Pen>
                                    </TextDecoration>
                                </TextDecorationCollection>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                    <Trigger Property ="IsMouseOver" Value="False">
                        <Setter Property="TextDecorations">
                            <Setter.Value>
                                <TextDecorationCollection>
                                    <TextDecoration Location="Underline">
                                        <TextDecoration.Pen>
                                            <Pen Brush="LimeGreen"/>
                                        </TextDecoration.Pen>
                                    </TextDecoration>
                                </TextDecorationCollection>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </TextBlock.Style>
    </TextBlock>