Wpf 膨胀机膨胀后卡住
我正在使用故事板和eventTrigger在单击选项卡时触发许多事件,但在扩展程序展开后,在故事板将IsExpanded设置为true后,扩展程序被卡住 问题是我如何使扩展器折叠/扩展手册在通过故事板变为真实后再次生效Wpf 膨胀机膨胀后卡住,wpf,storyboard,expander,eventtrigger,Wpf,Storyboard,Expander,Eventtrigger,我正在使用故事板和eventTrigger在单击选项卡时触发许多事件,但在扩展程序展开后,在故事板将IsExpanded设置为true后,扩展程序被卡住 问题是我如何使扩展器折叠/扩展手册在通过故事板变为真实后再次生效 <Storyboard x:Key="Operation"> <BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="(IsExpanded)" Storyboard.T
<Storyboard x:Key="Operation">
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="(IsExpanded)" Storyboard.TargetName="ExpanderAnetArticle" FillBehavior="HoldEnd">
<DiscreteBooleanKeyFrame KeyTime="0" Value="True"/>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</Window.Resources>
<Window.Triggers>
<EventTrigger RoutedEvent="UIElement.MouseLeftButtonUp" SourceName="CtrlTiOperation">
<BeginStoryboard x:Name="Operation_BeginStoryboard" Storyboard="{StaticResource Operation}"/>
<BeginStoryboard x:Name="Tabfocus_BeginStoryboard" Storyboard="{StaticResource Tabfocus}"/>
</EventTrigger>
您的FillBehavior=“HoldEnd”意味着您无法从代码更改属性,因为脚本保留了该属性
在前面对类似问题的回答中,我建议您为FillBehavior提供停止值,但这是错误的,因为使用停止时,该值将在动画结束时恢复
可以在动画中放置已完成的事件,如下所示:
private void animation_Completed(object sender, EventArgs e)
{
bool isexpanded = Exp1.IsExpanded;
Exp1.BeginAnimation(Expander.IsExpandedProperty, null);
Exp1.IsExpanded = isexpanded;
}
其中Exp1是您的扩展器
获取该值,停止动画,然后将该值放回原处。
它工作得很好
这不是唯一的方法,但我正在为自己的知识做一些测试。我们需要查看所有XAML以帮助您,至少是扩展程序和相关控件/资源