があり、マウスを上に置いたときにTextBlock
のように強調表示したい。Button
通常、テキストのみが強調表示されます。誰もこれを行う方法を知っていますか? 例をいただければ幸いです。
前もって感謝します。
があり、マウスを上に置いたときにTextBlock
のように強調表示したい。Button
通常、テキストのみが強調表示されます。誰もこれを行う方法を知っていますか? 例をいただければ幸いです。
前もって感謝します。
要件全体に応じて、これを達成するための複数のオプションがあります。TextBlock にはデフォルトでそのプロパティがフレームワーク要素として使用できないため、問題は背景を提供することから発生します。ただし、いくつかの方法があります。
テンプレートを使用してHyperlinkButton
、色の変更などをContent
Foreground
背景Border
やRectangle
その中の何かに指定しVisualStateManager
、テキストをHyperlinkButton
タイプとして作成することができます。これは通常、デフォルトのテンプレートを見るだけですぐにわかります。
上記と同じタイプのことを行うTextBlock
テンプレートを作成できます。VisualStateManager
単一のインスタンスまたはいくつかの場所のみの場合は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>
これは、この例に含まれていない他のいくつかの方法でそれを達成するための可能な方法のほんの一部です. お役に立てれば。:)