Wpf 椭圆可以';t在数据触发器中旋转

Wpf 椭圆可以';t在数据触发器中旋转,wpf,Wpf,我想在DataTrigger中将ProgressBar设置为true时旋转椭圆。但这是行不通的。 我测试椭圆的不透明度是否正常。但它不适用于RotateTransform。椭圆也与EventTrigger一起工作 这是我的错误,我如何修复它 谢谢你阅读我的文章 <Ellipse Name="ProgressEllipse" Width="40" Height="40" StrokeThickness="7" S

我想在DataTrigger中将ProgressBar设置为true时旋转椭圆。但这是行不通的。 我测试椭圆的不透明度是否正常。但它不适用于RotateTransform。椭圆也与EventTrigger一起工作

这是我的错误,我如何修复它

谢谢你阅读我的文章

<Ellipse Name="ProgressEllipse" Width="40" Height="40" StrokeThickness="7" Stroke="{StaticResource ProcessEllipseGradient}" Margin="5,0,0,0">
    <Ellipse.RenderTransform>
        <RotateTransform CenterX="20" CenterY="20" Angle="0"/>
    </Ellipse.RenderTransform>
    <!--<Ellipse.Triggers>
        <EventTrigger RoutedEvent="Ellipse.Loaded" SourceName="ProgressEllipse">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation
                        Storyboard.TargetName="ProgressEllipse"
                        Storyboard.TargetProperty="(Ellipse.RenderTransform).(RotateTransform.Angle)"
                        From="0"
                        To="360"
                        Duration="0:0:1"
                        RepeatBehavior="Forever" />
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Ellipse.Triggers>-->
    <Ellipse.Style>
        <Style TargetType="{x:Type Ellipse}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=ProgressBar}" Value="True">
                    <DataTrigger.EnterActions>
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation
                                    Storyboard.TargetProperty="(Ellipse.RenderTransform).(RotateTransform.Angle)"
                                    From="0"
                                    To="1"
                                    Duration="0:0:5"
                                    RepeatBehavior="Forever"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </DataTrigger.EnterActions>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Ellipse.Style>
</Ellipse>

附加信息


对不起,我没有。我的问题不清楚。 当椭圆直接位于形状中时,它工作正常。但是,当位于模板中时,它不起作用

下面是我的代码。

如果我在触发器中省略“RelativeSource={RelativeSource self}”。它将引发异常(无法对不可变对象实例设置“(0)。(1)”动画)

在示例代码中。我有三个椭圆。当我在模板中找到左椭圆时,它不起作用(我试图使它起作用,但它不起作用)。中心椭圆与模板中的椭圆代码相同。但是当我直接在表单中找到它时,它工作正常。我在模板中测试了椭圆的不透明度属性。它工作正常。我不知道哪一个是我的错

你能帮我一下吗


感谢阅读我的问题。ProgressBar属性在WPF中不存在。您可能引用了
Ellipse
的底层
DataContext
中的某些属性

因此,将
Binding=“{Binding RelativeSource={RelativeSource Self},Path=ProgressBar}”更改为
Binding=“{Binding Path=ProgressBar}”

还要确保此
ProgressBar
属性生成属性更改通知,以便触发器执行操作

另外,您还应该有一个
结尾故事板

 <Ellipse.Style>
     <Style TargetType="{x:Type Ellipse}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Path=ProgressBar}" 
                         Value="True">
                <DataTrigger.EnterActions>
                    <BeginStoryboard Name="MyStoryboard">
                        <Storyboard>
                           <DoubleAnimation
                               Storyboard.TargetProperty="(Ellipse.RenderTransform).(RotateTransform.Angle)"
                               From="0"
                               To="1"
                               Duration="0:0:5"
                               RepeatBehavior="Forever"/>
                        </Storyboard>
                    </BeginStoryboard>
                </DataTrigger.EnterActions>
                <DataTrigger.ExitActions>
                     <StopStoryboard BeginStoryboardName="MyStoryboard"/>
                </DataTrigger.ExitActions>
              </DataTrigger>
           </Style.Triggers>
        </Style>
    </Ellipse.Style>

很抱歉,我没听到。我的问题不清楚。我已经修改了上面的问题