C# 触发事件后未返回原始值的DoubleAnimation高度不再被触发
我试图在我的列表框中添加一些样式,当创建列表框时,它有一个项目的大小,当鼠标结束时,它应该增加其高度以适合5个项目,到目前为止还不错,但由于当用户将鼠标移到列表框上以转到另一个字段时,它会变得很烦人,看着它长大并恢复到原来的尺寸,它会感到恼火 所以我决定尝试在这个列表框中使用双动画的故事板。我做到了这一点:C# 触发事件后未返回原始值的DoubleAnimation高度不再被触发,c#,wpf,xaml,styles,storyboard,C#,Wpf,Xaml,Styles,Storyboard,我试图在我的列表框中添加一些样式,当创建列表框时,它有一个项目的大小,当鼠标结束时,它应该增加其高度以适合5个项目,到目前为止还不错,但由于当用户将鼠标移到列表框上以转到另一个字段时,它会变得很烦人,看着它长大并恢复到原来的尺寸,它会感到恼火 所以我决定尝试在这个列表框中使用双动画的故事板。我做到了这一点: <Style TargetType="ListBox"> <Setter Property="VerticalAlignment" Value="T
<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”
将从
和切换到
值。列表框无法移动
因此,我尝试了一个在StackOverflow中看到的关于DataTemplate.Triggers
的答案,但得到了相同的结果
我不知道还有什么可以尝试,因为我对WPF的缺乏知识每次都会妨碍我
有什么好的替代方案?提前感谢,欢迎发表意见。在
触发器中使用额外的返回情节提要
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard BeginTime="0:0:.25">
<DoubleAnimation Storyboard.TargetProperty="Height"
From="85" To="20" Duration="0:0:0"/>
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
它工作得很好。谢谢。但只有一件事,当故事板被触发时,我的背景事件也不会被触发。有没有办法解决这个问题X提前感谢,非常感谢。你指的是什么背景事件?MouseLeave=“ListBox\u MouseLeave”在这个事件中,当ListBox的长度只能显示一个项目时,我只是让所选项目显示。如果鼠标位于ListBox上方并触发IsMouseOver,为什么会触发此事件?我已经试过了,如果鼠标离开列表框,它就会启动。预期行为。据我所知不是这样。很抱歉
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Height" From="20" To="85"
Duration="0:0:0.5" FillBehavior="Stop" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Setter Property="Height" Value="85" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
</Trigger>
</Style.Triggers>