2010-12-13 11 views
1

ListBoxのホバーアイテムのフォントサイズを18にして、ユーザーが項目をブラウズするときに一種の「ローリングエフェクト」を得るようにしたいと思います。私はこれについてどうやって行くのか分からない。私のリストボックスは、あなたがこれを行うためにトリガーを使用することができるはずです。このWPFのホールドされた要素のFontSizeを増やすListBox

<ListBox Name="ListBox" ItemsSource="{Binding MyList}" DisplayMemberPath="Property1"> 

おかげ

答えて

1

のように見えます。このようなもの

<ListBox Name="ListBox" ItemsSource="{Binding MyList}" DisplayMemberPath="Property1"> 
    <ListBox.ItemContainerStyle> 
     <Style TargetType="ListBoxItem"> 
      <Style.Triggers> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="TextBlock.FontSize" Value="18"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ListBox.ItemContainerStyle> 
</ListBox> 
+0

ありがとう、素晴らしい作品! – Alex

0

Meleakの答えはあなたが尋ねたことをする方法です。しかし、メンバーのフォントサイズを変更すると、リストボックス全体がレイアウトされることがわかります。これはかなり望ましくないことがあります。あなたがしようと、代わりのフォントサイズを設定し、スケール変換を適用可能性があります

<ListBox.ItemContainerStyle> 
    <Style TargetType="ListBoxItem"> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="RenderTransform"> 
        <Setter.Value> 
        <ScaleTransform ScaleX="2" ScaleY="2"/> 
        </Setter.Value> 
       </Setter> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</ListBox.ItemContainerStyle> 

これはRenderTransform(とないLayoutTransform)であるので、それは、リストボックスのレイアウトに影響を与えることはありません。他の問題もあります(サイズが2倍になると重なりますので、アイテムの背景を扱う必要があります)が、実験する価値があります。

+0

お寄せいただきありがとうございます!しかし、これを使用するときに重大な重複があります(上記のように) – Alex

+0

ええ、これはうまく動作するためには、テンプレート内の最上位の要素を、 - 透明な '背景'。それは、マウスが項目の上にあるときに 'BorderThickness'をゼロ以外の値にするようなこともできるということです。あなたはこれで遊ぶなら、かなり良い効果を得ることができます。 –

+0

私は間違いなくそれを行うでしょう!もう一度お返事ありがとう – Alex

関連する問題