是否可以在winrt中创建自定义转换? (如ContentThemeTransition)

时间:2014-07-29 16:31:52

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

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

特别是我想在替换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>

这可能吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

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

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