繁体   English   中英

如何在UWP应用程序中更改Storyboard属性时触发事件

[英]How to trigger an event when Storyboard properties change in UWP app

我有一个控件的故事板动画向上和向下缩放,我想在故事板中缩放值更改时获得propertychanged回调。

<Storyboard x:Name="ScaleLoop" RepeatBehavior="Forever">
    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleY)" Storyboard.TargetName="ScalingObject" EnableDependentAnimation="True">
        <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
        <EasingDoubleKeyFrame KeyTime="0:0:1" Value="1"/>
        <EasingDoubleKeyFrame KeyTime="0:0:2" Value="0"/>
    </DoubleAnimationUsingKeyFrames>
</Storyboard>

上面的动画很简单,但将来我打算制作一个更复杂的动画。

<Canvas x:Name="ScalingObject">
    <Canvas.RenderTransform>
        <CompositeTransform ScaleY="1"/>
     </Canvas.RenderTransform>
</Canvas>

这是我正在使用的回调:

long handle = this.ScalingObject.RegisterPropertyChangedCallback(Canvas.RenderTransformProperty, new DependencyPropertyChangedCallback(this.ChangeState));

但这只会被解雇一次。

这是最好的方法吗?

任何帮助都会很棒。

谢谢,B

似乎Canvas.RenderTransformProperty无法触发事件。

您应该能够使用CompositeTransform.ScaleYProperty设置为RegisterPropertyChangedCallback方法。 更改CompositeTransform.ScaleYProperty的值时,将触发ChangeState事件。

例如:

var compositeTransform = (CompositeTransform)ScalingObject.RenderTransform;
long handle = compositeTransform.RegisterPropertyChangedCallback(CompositeTransform.ScaleYProperty, new DependencyPropertyChangedCallback(this.ChangeState));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM