【问题标题】:How to underline a TextBlock on a MouseEnter如何在 MouseEnter 上为 TextBlock 加下划线
【发布时间】:2009-04-16 01:26:04
【问题描述】:

在 WPF 表单中,我有以下 TextBlock。当我将鼠标移到它上面时,我希望看到 TextBlock 的文本带有下划线。我怎样才能做到这一点?我尝试过使用 TextBlock.Triggers,但它不起作用。

谢谢!

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    使用样式:

    <TextBlock Text="Hurrah">
      <TextBlock.Style>
        <Style TargetType="TextBlock">
          <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
              <Setter Property="TextDecorations" Value="Underline" />
            </Trigger>
          </Style.Triggers>
        </Style>
      </TextBlock.Style>
    </TextBlock>
    

    (为简洁起见,样式显示为内联;如果您打算重复使用,请提取到资源中。)

    【讨论】:

    • 这真的很有帮助。但是如果我只需要在第一个字符下划线怎么办?
    • @conqenator:然后您需要将不同格式的位分解为多个内联:&lt;TextBlock&gt;&lt;Run Style="..."&gt;H&lt;/Run&gt;urrah&lt;/TextBlock&gt; 并将样式应用于 Run 而不是 TextBlock(如图所示)。除了 Run 的 TargetType 之外,样式将是相同的;并且您肯定希望将其提取到资源中,因为内联编写它会淹没 XAML 的可读性!
    猜你喜欢
    • 1970-01-01
    • 2013-10-21
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2017-03-17
    相关资源
    最近更新 更多