鼠标悬停上的WPF TextBlock样式下划线

Mik*_*erk 10 c# wpf styles

简单的问题.以下WPF C#代码可以减少一些重量吗?我的意思是,WTF,呃......我的意思是WPF,来吧.你有没有见过CSS?当我像鼠标一样悬停鼠标时,我只想强调文本.我真的需要添加9行吗?

<TextBlock x:Name="Cassette_tblPrintLabel" Text="Print Label" Canvas.Left="154" Canvas.Top="215" Foreground="#FF3355FF" Cursor="Hand" MouseDown="Cassette_lblPrintLabel_MouseDown">
    <TextBlock.Style>
        <Style TargetType="TextBlock">
            <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="TextBlock.TextDecoration" Value="Underline" />
            </Trigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

提前致谢!

McG*_*gle 16

将样式添加为资源; 那么至少你可以重复使用它.我认为这是你能做的最好的事情.

<Application.Resources>
    <Style TargetType="TextBlock" x:Key="HoverUnderlineStyle">
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="TextBlock.TextDecorations" Value="Underline" />
            </Trigger>
        </Style.Triggers>
    </Style>
</Application.Resources>

<TextBlock Style="{StaticResource HoverUnderlineStyle}" />
Run Code Online (Sandbox Code Playgroud)

  • TextDecoration必须是TextDecorations,否则编译器会抱怨 (4认同)