我有一个TextBlock
,当我把鼠标放在它上面时,我希望像Button
一样强调它。通常,只会突出显示文本。有谁知道如何做到这一点?我很感激一个例子。
提前致谢。
答案 0 :(得分:0)
根据您的要求总体而言,您有多种方法可以完成此任务。您的问题将来自提供背景,因为TextBlock默认情况下没有该属性可用作框架元素。不过这里有几种方法;
您可以使用HyperlinkButton
模板为Content
Foreground
和背景Border
或Rectangle
指定颜色变化等。 VisualStateManager
中的某些内容,只需将您的文字设为HyperlinkButton
类型即可。通过查看默认模板,通常可以非常快速地计算出来。
您可以使用TextBlock
创建VisualStateManager
模板,以执行上述相同类型的操作。
如果仅针对单个实例或几个地方,您可以使用附加到对象的EventTrigger
来完成同样的事情,例如;
<强>命名空间(S):
的xmlns:ⅰ= “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>
这只是其中几个未包含在此示例中的其他几种可能的方法。希望这可以帮助。 :)