Search code examples
c#.netwpfxamltextblock

Textblock style toggle!


I have a style which underlines the textblock when it is mouseovered... How ever i need when it is clicked to change its font weight to bold(selected).. any idea?


Solution

  • Code example of what dnr3 said, a templated ToggleButton

    <Style x:Key="BoldWhenClickedTextBlock" TargetType="ToggleButton" BasedOn="{StaticResource {x:Type ToggleButton}}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ToggleButton">
                    <TextBlock x:Name="c_toggleButtonTextBlock" Text="{Binding RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}, Path=Content}"/>
                    <ControlTemplate.Triggers>
                        <Trigger Property="ToggleButton.IsMouseOver" Value="True">
                            <Setter TargetName="c_toggleButtonTextBlock" Property="TextDecorations" Value="Underline"/>
                        </Trigger>
                        <Trigger Property="ToggleButton.IsChecked" Value="True">
                            <Setter TargetName="c_toggleButtonTextBlock" Property="FontWeight" Value="Bold" />
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    

    And then the "TextBlock" ToggleButton can use this with

    <ToggleButton Style="{StaticResource BoldWhenClickedTextBlock}" Content="My Text.."/>