1

があり、マウスを上に置いたときにTextBlockのように強調表示したい。Button通常、テキストのみが強調表示されます。誰もこれを行う方法を知っていますか? 例をいただければ幸いです。

前もって感謝します。

4

1 に答える 1

0

要件全体に応じて、これを達成するための複数のオプションがあります。TextBlock にはデフォルトでそのプロパティがフレームワーク要素として使用できないため、問題は背景を提供することから発生します。ただし、いくつかの方法があります。

  1. テンプレートを使用してHyperlinkButton、色の変更などをContent Foreground背景BorderRectangleその中の何かに指定しVisualStateManager、テキストをHyperlinkButtonタイプとして作成することができます。これは通常、デフォルトのテンプレートを見るだけですぐにわかります。

  2. 上記と同じタイプのことを行うTextBlockテンプレートを作成できます。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 に答える