C# 主题转换的完成处理程序
默认的UWPC# 主题转换的完成处理程序,c#,uwp,uwp-xaml,C#,Uwp,Uwp Xaml,默认的UWPListView样式在其ItemContainerTransitionsTransitionCollection中包含一些主题转换。有没有办法知道给定主题转换的转换动画何时完成 例如,我有一个ListView和一个附带的按钮,用于将项目添加到列表中。我想在添加项目时禁用该按钮,因为如果另一个项目在添加过程中排队,动画将被取消。我可以根据按钮点击事件轻松禁用按钮,但我需要知道何时可以重新启用它 我的选择似乎是: 1) 等待任务。延迟一个adddeletetethemetransitio
ListView
样式在其ItemContainerTransitions
TransitionCollection
中包含一些主题转换。有没有办法知道给定主题转换的转换动画何时完成
例如,我有一个ListView
和一个附带的按钮,用于将项目添加到列表中。我想在添加项目时禁用该按钮,因为如果另一个项目在添加过程中排队,动画将被取消。我可以根据按钮点击事件轻松禁用按钮,但我需要知道何时可以重新启用它
我的选择似乎是:
1) 等待任务。延迟一个adddeletetethemetransition
所需的时间。看起来很粗糙
2) 尝试使用情节提要
动画模拟adddeletetethemetransition
。我有这个工作,但似乎有点过头了。也可以使用构图,但在我看来,构图甚至比故事板动画更过分
顺便说一句,我还没有看到任何人实现自己的转换
(即从转换
类继承)。这可能与此无关,但它是否可行呢?如果您有受支持的SDK,那么使用组合的第二个想法实际上是最好的。您想要使用的是在元素或ItemsPanel上定义的隐式动画,因为没有合适的方法来判断动画何时完成
ElementCompositionPreview.SetImplicitShowAnimation
和ElementCompositionPreview.setImplicitIdeAnimation
支持您设置隐式合成动画以添加/删除到可视化树中,并将避免一个动画取消另一个动画的踩踏问题,而且比使用故事板更有效
您也不能实现自己的“转换”,因为类本身完全不公开任何内容,但现在使用合成动画就没有必要了-合成功能更强大。AddDeleteThemeTransition类中没有属性,我们无法知道更改的值。它也没有任何事件,似乎我们不知道它何时结束。