简体   繁体   English

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

[英]How to set Targetproperty for ellipse in Storyboard?

I am learning storyboard in wpf C#. 我正在WPF C#中学习情节提要。 I have referred the msdn documentation on storyboard.For understanding, I created a simple application that just rotates an ellipse. 我已经参考了Storyboard上的msdn文档。为了理解,我创建了一个仅旋转椭圆的简单应用程序。

Here is my code.. 这是我的代码。

<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>

I want to set ellipse rotate transform angle of ellipse as double animation target property.As angle is not a property of the ellipse it throws an exception.Then I searched the SO and found a similar question and set targetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" 我想将椭圆旋转的椭圆转换角度设置为双重动画目标属性。由于角度不是椭圆的属性,因此抛出异常。然后我搜索了SO,发现了一个类似的问题,并将targetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)"

But that too didn't work. 但这也不起作用。 How can I set the angle as targetproperty ? 如何将角度设置为目标targetproperty

Thanks in advance.. 提前致谢..

In order to make 为了要做

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

or simply 或简单地

Storyboard.TargetProperty="RenderTransform.Angle"

work, you have to change the RenderTransform property from TransformGroup to RotateTransform : 工作,您必须将RenderTransform属性从TransformGroup更改为RotateTransform

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

In case you need to keep the TransformGroup you have to write 如果您需要保留TransformGroup ,则必须编写

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

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

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