如何在情节提要中设置椭圆的Targetproperty

本文关键字:设置 Targetproperty | 更新日期: 2023-09-27 18:22:37

我正在wpf C#中学习故事板。我已经参考了故事板上的msdn文档。为了便于理解,我创建了一个简单的应用程序,它只旋转一个椭圆。

这是我的密码。。

<Ellipse  Name="myEllipse" Width="200" Height="200" Margin="266,42,51,78" 
          RenderTransformOrigin="0.5,0.5"  >
    <Ellipse.RenderTransform>
        <TransformGroup>
            <ScaleTransform/>
            <SkewTransform/>
            <RotateTransform Angle="0"/>
            <TranslateTransform/>
        </TransformGroup>
    </Ellipse.RenderTransform>
    <Ellipse.Fill>
        <ImageBrush ImageSource="circle.gif"></ImageBrush>
    </Ellipse.Fill>
</Ellipse>
// Button to animate the ellipse
<Button Width="60" Height="20" Margin="0,250,0,0" Content="Start">
    <Button.Triggers>
        <EventTrigger RoutedEvent="Button.Click">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation Storyboard.TargetName="myEllipse"
                                     Storyboard.TargetProperty="Angle"
                                     From="0" To="360"
                                     AutoReverse="True" 
                                     RepeatBehavior="Forever"> 
                    </DoubleAnimation>        
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Button.Triggers>
</Button>

我想将椭圆的旋转变换角度设置为双动画目标属性。由于角度不是椭圆的一个属性,它抛出了一个异常。然后我搜索SO,发现了一个类似的问题,并设置targetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)"

但这也没用。如何将角度设置为targetproperty

提前谢谢。。

如何在情节提要中设置椭圆的Targetproperty

为了制作

Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)"

或简称

Storyboard.TargetProperty="RenderTransform.Angle"

工作时,必须将RenderTransform属性从TransformGroup更改为RotateTransform:

<Ellipse.RenderTransform>
    <RotateTransform Angle="0"/>
</Ellipse.RenderTransform>

如果你需要保留TransformGroup,你必须写

Storyboard.TargetProperty="RenderTransform.Children[2].Angle"