【问题标题】:Why does some of my animation get missed?为什么我的某些动画会丢失?
【发布时间】:2011-07-16 13:09:44
【问题描述】:

我有一些动画在窗口的加载事件上运行。问题是当窗口实际加载我的一些动画时已经错过了。我从中途看到我的动画。动画持续 0.7 秒。这是我的代码:

<Window.Triggers>
    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
        <BeginStoryboard Storyboard="{StaticResource storyboardMenu}"/>
    </EventTrigger>
</Window.Triggers>

我该如何解决这个问题?

【问题讨论】:

    标签: wpf silverlight xaml animation triggers


    【解决方案1】:

    不可能在不知道更多的情况下说,但我的猜测是在加载的事件触发期间或之后发生了其他事情,这会延迟窗口变得可见。绑定大量数据是一个可能的原因。在您的构造函数中启动的异步调用或加载的事件可能会很快返回并在可能显示窗口之前阻塞 UI 线程几毫秒?

    【讨论】:

    • 你是对的。返回大量数据。那么对此可以做些什么呢?或者更确切地说可以对此做些什么?
    • 您可以做一些事情,但这取决于数据的来源以及获取数据的方式。首先,您是异步加载数据吗?如果没有,那可能会有所帮助。另一种选择是在计时器返回时对数据进行分块或分页。所以每 10 毫秒加载 50-100 个项目,直到全部加载完毕。
    • 另一件事是检查您的 ListBoxes 是否仍然是虚拟化的。它们是默认设置的,但如果您将 ListBox 的 ItemPanel 模板更改为 VirtualizingStackPanel 以外的其他模板,它们可能不再存在。另请查看kirupa.com/net/ui_virtualization_pg2.htm,了解有关虚拟化 UI 的更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多