扩展器在扩展后卡住
expander stuck after isexpanded
我正在使用故事板和 eventTrigger 在单击选项卡时触发许多事件,这有效,但在扩展器展开后,扩展器在故事板将 IsExpanded 设置为 true 后卡住
问题是在情节提要变为真实后,我如何才能再次制作扩展器 Collapsed/Expanded 手册??
<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" 意味着你不能从代码中更改 属性 因为 StoryBoard 保留了它。
在之前对您类似问题的回答中,我建议您为 FillBehavior 提供 Stop 值,但这是错误的,因为如果使用 Stop,该值将在动画结束时恢复。
您可以将完成的事件放入动画中,类似这样:
private void animation_Completed(object sender, EventArgs e)
{
bool isexpanded = Exp1.IsExpanded;
Exp1.BeginAnimation(Expander.IsExpandedProperty, null);
Exp1.IsExpanded = isexpanded;
}
其中 Exp1 是您的 Expander
。
您获取 fhe 值,停止动画,然后将值放回原处。
IT 运作良好。
这不是唯一的方法,但我正在为自己做一些知识测试。
我正在使用故事板和 eventTrigger 在单击选项卡时触发许多事件,这有效,但在扩展器展开后,扩展器在故事板将 IsExpanded 设置为 true 后卡住
问题是在情节提要变为真实后,我如何才能再次制作扩展器 Collapsed/Expanded 手册??
<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" 意味着你不能从代码中更改 属性 因为 StoryBoard 保留了它。
在之前对您类似问题的回答中,我建议您为 FillBehavior 提供 Stop 值,但这是错误的,因为如果使用 Stop,该值将在动画结束时恢复。
您可以将完成的事件放入动画中,类似这样:
private void animation_Completed(object sender, EventArgs e)
{
bool isexpanded = Exp1.IsExpanded;
Exp1.BeginAnimation(Expander.IsExpandedProperty, null);
Exp1.IsExpanded = isexpanded;
}
其中 Exp1 是您的 Expander
。
您获取 fhe 值,停止动画,然后将值放回原处。 IT 运作良好。
这不是唯一的方法,但我正在为自己做一些知识测试。