(Windows应用商店应用 - Xaml / C#)动画自定义依赖项属性始终需要EnableDependentAnimation

时间:2015-03-06 18:42:33

标签: c# xaml animation windows-store-apps dependency-properties

设置: 在使用Xaml / C#的Windows应用商店应用中,我使用带有DependencyProperty的UserControl,称为FadeLevel。该属性有一个OnPropertyChanged处理程序,用于更新UserControl中UIElement的不透明度。

问题: 当我尝试为此属性设置动画时,我必须将EnableDependentAnimation设置为True才能使动画生效。在哪一点上工作并且运作良好。

为什么我感到困惑: 不透明度不是需要启用从属动画的属性,只有影响布局的属性才需要此属性。

我的理由: 我想运行时不知道这个属性在做什么,并假设它是依赖的。

请赐教: 它真的是这样的吗?如果您拥有自定义依赖项属性,则无论基础udpate是否依赖,您都必须启用相关动画才能对其进行动画处理?

请帮助我理解为什么运行时以这种方式工作或者我错过了什么。

感谢。

1 个答案:

答案 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时才是独立的。