0

我已经查看了 Stackoverflow,但还没有看到任何关于此的内容。

目前,我正在使用动画来让组框在操作发生时闪烁(即其他工作)。不幸的是,由于正在运行其他操作/工作,闪烁并不顺畅。我已经尝试穿插 ThreadHelper.DoEvents() 这有帮助但还远远不够。有没有办法使动画更新顺利进行(即闪烁不一致)而不将所有其他操作放在自己的线程上(由于与UI交互而被认为过于复杂)?首选是将组框动画的更新放在自己的线程中(或类似的东西或??)?

动画如下:

    <Storyboard x:Key="FlashingGroupBoxForTest" RepeatBehavior="Forever">
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="StartTest">
            <EasingDoubleKeyFrame KeyTime="0" Value="1"/>
            <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="0"/>
            <EasingDoubleKeyFrame KeyTime="0:0:1" Value="1"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>

触发器用于启动和停止动画

        <ei:DataTrigger Binding="{Binding PerformingFocusTest, Mode=OneWay}" Value="True">
        <ei:ControlStoryboardAction Storyboard="{StaticResource FlashingGroupBoxForTest}"     
                                            ControlStoryboardOption="Play"/>
    </ei:DataTrigger>
    <ei:DataTrigger Binding="{Binding PerformingFocusTest, Mode=OneWay}" Value="False">
        <ei:ControlStoryboardAction Storyboard="{StaticResource FlashingGroupBoxForTest}"     
                                            ControlStoryboardOption="Stop"/>
    </ei:DataTrigger>

感谢您的关注,感谢您提供任何帮助。

最好的,

巴克

4

0 回答 0