1

我有一个,当我把鼠标放在它上面时TextBlock,我想突出显示它。Button通常,只有文本突出显示。有谁知道如何做到这一点?我会很感激一个例子。

提前致谢。

4

1 回答 1

0

根据您的总体要求,您有多种选择来完成此操作。您的问题将来自提供背景,因为 TextBlock 默认情况下没有该属性可用作框架元素。但是,这里有几种方法;

  1. 您可以使用HyperlinkButton模板来指定您的颜色更改等到Content Foreground背景Border或其中的Rectangle某些内容,VisualStateManager然后将您的文本设置为HyperlinkButton类型。这通常可以通过查看默认模板来快速解决。

  2. 您可以创建一个TextBlock带有 a 的模板VisualStateManager来执行上述相同类型的操作。

  3. 如果仅针对单个实例或几个地方,您可以使用EventTrigger附加到对象来完成相同的事情,例如;

命名空间:

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"

<Border x:Name="MyBackground">
  <TextBlock x:Name="MyForeground" Text="Hover Over Me!" Margin="5">
      <i:Interaction.Triggers>
         <i:EventTrigger EventName="MouseEnter">
             <ei:ChangePropertyAction TargetName="MyForeground"
                                      PropertyName="Foreground"
                                      Value="Orange" />
             <ei:ChangePropertyAction TargetName="MyBackground"
                                      PropertyName="Background"
                                      Value="Blue" />
         </i:EventTrigger>
         <i:EventTrigger EventName="MouseLeave">
             <ei:ChangePropertyAction TargetName="MyForeground"
                                      PropertyName="Foreground"
                                      Value="Black" />
             <ei:ChangePropertyAction TargetName="MyBackground"
                                      PropertyName="Background"
                                      Value="Transparent" />
       </i:EventTrigger>
      </i:Interaction.Triggers>
    </TextBlock>
</Border>

这只是与本示例中未包含的其他几种方法一起完成它的几种可能方法。希望这可以帮助。:)

于 2013-04-03T16:35:57.477 回答