设置: 在使用Xaml / C#的Windows应用商店应用中,我使用带有DependencyProperty的UserControl,称为FadeLevel。该属性有一个OnPropertyChanged处理程序,用于更新UserControl中UIElement的不透明度。
问题: 当我尝试为此属性设置动画时,我必须将EnableDependentAnimation设置为True才能使动画生效。在哪一点上工作并且运作良好。
为什么我感到困惑: 不透明度不是需要启用从属动画的属性,只有影响布局的属性才需要此属性。
我的理由: 我想运行时不知道这个属性在做什么,并假设它是依赖的。
请赐教: 它真的是这样的吗?如果您拥有自定义依赖项属性,则无论基础udpate是否依赖,您都必须启用相关动画才能对其进行动画处理?
请帮助我理解为什么运行时以这种方式工作或者我错过了什么。
感谢。
答案 0 :(得分:0)
请参阅MSDN上Dependent and independent animations文档中Storyboarded animations中列出的条件:
如果动画具有以下任何特征,则动画是独立的:
动画的持续时间为0秒
动画的目标是UIElement.Opacity
动画定位这些UIElement属性的子属性值:RenderTransform,Projection,Clip
动画的目标是Canvas.Left或Canvas.Top
动画以Brush值为目标并使用SolidColorBrush,为其颜色设置动画
动画是ObjectAnimationUsingKeyFrames
运行时不知道您的FadeLevel属性的作用,因此无法将FadeLevel的动画视为自动独立。定位自定义属性的动画只有在持续时间0或ObjectAnimationUsingKeyFrames时才是独立的。