У вас есть несколько вариантов для этого, в зависимости от ваших требований в целом. Ваша проблема будет связана с предоставлением фона, поскольку TextBlock не имеет этого свойства, доступного по умолчанию в качестве элемента Framework. Однако вот несколько способов;
Вы можете использовать шаблон HyperlinkButton
указать ваши изменения цвета и т.д. в Content
Foreground
и фона Border
или Rectangle
или что-то в его VisualStateManager
и просто сделать текст HyperlinkButton
типа. Обычно это можно легко понять, просто взглянув на шаблоны по умолчанию.
Вы можете создать шаблон TextBlock
с помощью VisualStateManager
, чтобы сделать то же самое, что указано выше.
Если это только для одного экземпляра или нескольких мест, вы можете просто использовать EventTrigger
, прикрепленный к объекту, чтобы выполнить то же самое, например;
пространств имен (ы):
Xmlns: I = "http://schemas.microsoft.com/expression/2010/interactivity" Xmlns: е = "HTTP: // схемы .microsoft.com/выражение/2010/взаимодействия»
<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>
и это лишь некоторые из возможных способов ее выполнения с несколькими другими, не включенными в этом примере. Надеюсь это поможет. :)