扩展器在扩展后卡住

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 运作良好。

这不是唯一的方法,但我正在为自己做一些知识测试。