【问题标题】:Is it possible to create a custom transition in winrt? (like ContentThemeTransition)是否可以在 winrt 中创建自定义过渡? (如 ContentThemeTransition)
【发布时间】:2014-07-29 16:31:52
【问题描述】:

我想知道是否可以创建自定义转换而不是使用标准转换集。

特别是我希望在替换 ListViewItem 时有一个自定义的 AddDeleteTransition。

我认为我必须从 Transition 类 (http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.media.animation.transition.ASPx) 继承,但我不知道在这个类中要做什么,因为我找不到任何示例。 (我知道如何创建和使用故事板和动画)

最后,我想在 xaml 中做这样的事情:

<ItemsControl.ItemContainerTransitions>
    <TransitionCollection>
        <mynamespace:MyCustomAddDeleteTransition/>
    </TransitionCollection>
</ItemsControl.ItemContainerTransitions>

这可能吗?

提前致谢

【问题讨论】:

    标签: c# xaml animation windows-runtime winrt-xaml


    【解决方案1】:

    在 Windows 8/8.1 中 - 不支持此类自定义转换,但您可以编写附加行为或子类化 ItemsControl 以使用常规 Storyboard 动画来实现。对于您的特定场景,您可以使用ContainerContentChanging 事件或在自定义ListView 子类中覆盖PrepareContainerForItemOverrideClearContainerForItemOverride 来设置动画。

    在大约从周年更新 (2016) 开始的 Windows 10 中,您还可以使用 composition engine animations 实现转换,从而实现一些更强大的转换。

    【讨论】:

    • 谢谢,PrepareContainerForItemOverride(一个 FlipIn 动画)运行良好。但是在 ClearContainerForItemOverride (FlipOut) 中触发的动画将不会播放/完成,因为同一容器的 PrepareContainerForItemOverride 会在之后被调用,即使我将基类调用用于清除情节提要的完成事件。所以现在我将保持标准过渡。也许随着 WinRT 的未来更新,我们能够创建自定义转换;)
    • 您可以让您的容器使用两个内容呈现器并在它们之间交替,然后仅对您正在清空/填充的一个进行动画处理。
    • 动画内容演示者完成了这项工作,非常感谢:)
    猜你喜欢
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 2016-07-30
    • 2021-12-26
    • 1970-01-01
    相关资源
    最近更新 更多