リストボックスにスタイリングを入れようとしています.リストボックスが作成されたとき、それは1つのアイテムのサイズを持ち、マウスが上にあるとき、5つのアイテムに合うように高さを増やす必要があります。ユーザーがマウスをその上に置いて別のフィールドに移動すると、それが大きくなって元のサイズに戻るのを見るのが面倒になります。
そこで、この ListBox の DoubleAnimation を使用して Storyboards を試すことにしました。私はこれに達しました:
<Style TargetType="ListBox">
<Setter Property="VerticalAlignment" Value="Top" />
<Setter Property="Height" Value="20" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Disabled" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard BeginTime="0:0:.25">
<DoubleAnimation Storyboard.TargetProperty="Height" From="20" To="85" Duration="0:0:0"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
</Trigger>
</Style.Triggers>
</Style>
わかりました、それはうまくいきます。パーフェクト、私はすでにプロのように感じています。しかし、テストに行ったとき、問題が発生しました。マウスオーバーがなくなると、リストボックスは元のサイズに戻りません。そこで、逆のことをしてProperty="IsMouseOver" Value="False"
、From
とのTo
値を入れ替えて使用することにしました。ListBox は移動しません。
それで、StackOverflowで見た答えを試してみましDataTemplate.Triggers
たが、同じ結果が得られました。
WPF の知識不足が毎回邪魔になるので、他に何を試すべきかわかりません。
これに代わる良い方法は何ですか?事前に感謝し、意見はいつでも歓迎します。