我正在尝试在我的列表框中添加一些样式,当创建列表框时,它具有一个项目的大小,当鼠标悬停时,它应该增加它的高度以适应 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 的了解不足每次都会妨碍我。
有什么好的选择呢?提前致谢,欢迎随时提出意见。