C# 设置依赖项属性的动画

C# 设置依赖项属性的动画,c#,windows-runtime,dependency-properties,winrt-xaml,C#,Windows Runtime,Dependency Properties,Winrt Xaml,我有一个自定义用户控件,用于注册依赖项属性HoverHeight: public sealed partial class VirtualPointer : UserControl { public static readonly DependencyProperty HoverHeightProperty = DependencyProperty.Register("HoverHeight", typeof(double), typeof(Virtu

我有一个自定义用户控件,用于注册依赖项属性
HoverHeight

public sealed partial class VirtualPointer : UserControl
{
    public static readonly DependencyProperty HoverHeightProperty =
         DependencyProperty.Register("HoverHeight", typeof(double),
         typeof(VirtualPointer), new PropertyMetadata(1.0,OnHoverHeightChanged));

    public double HoverHeight
    {
        get { return (double)GetValue(HoverHeightProperty); }
        set { SetValue(HoverHeightProperty, value); }
    }
    ...
我使用此属性结合相应的
IValueConverter
计算某些子控件的
边距

在使用此控件的页面中,我创建了一个
情节提要
,它应该为
悬停高度
属性设置动画:

<Page ...>
    <Page.Resources>
        <Storyboard>
            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="virtualPointer" Storyboard.TargetProperty="HoverHeight">
                <LinearDoubleKeyFrame Value="1.0" KeyTime="0:0:0"/>
                <LinearDoubleKeyFrame Value="0.0" KeyTime="0:0:1"/>
                <LinearDoubleKeyFrame Value="1.0" KeyTime="0:0:2"/>
                <LinearDoubleKeyFrame Value="0.0" KeyTime="0:0:3"/>
                <LinearDoubleKeyFrame Value="1.0" KeyTime="0:0:4"/>
            </DoubleAnimationUsingKeyFrames>
            <!-- other DoubleAnimationUsingKeyFrames -->
        </Storyboard>
    </Page.Resources>
    <!-- ... -->
    <local:VirtualPointer Name="virtualPointer" HoverHeight="0.5"/>    
</Page>

故事板包含其他按预期工作的动画。但是,当我启动故事板时,
HoverHeight
值不会改变。既不调用
OnHoverHeightChanged
处理程序,也不调用具有新值的转换器。我可以使用属性setter设置一个新值,属性setter反过来调用
OnHoverHeightChanged
处理程序,因此动画可能有问题

启动情节提要时没有生成任何输出或异常


我是不是遗漏了什么?如何设置自定义依赖项属性的动画?

将动画的EnableDependentAnimation属性设置为True


默认情况下,依赖动画在Windows 8上根本不运行。默认情况下,它们是独立的动画(例如执行GPU转换的动画),因此您将无法在UI线程上接收更改通知。至少这是我的理解。

这两个代码段在哪里?它们是在样式中还是在其他任何地方?类定义在单独的文件中。
是窗口中网格的子元素。
在提供
x:Key
中定义。太好了,谢谢。虽然这个属性看起来有点神秘。毕竟,用户界面元素的属性可以在没有它的情况下设置动画。谢谢!在这件事上浪费了很多时间试图弄明白为什么故事板不起作用。