Wpf 椭圆可以';t在数据触发器中旋转
我想在DataTrigger中将ProgressBar设置为true时旋转椭圆。但这是行不通的。 我测试椭圆的不透明度是否正常。但它不适用于RotateTransform。椭圆也与EventTrigger一起工作 这是我的错误,我如何修复它 谢谢你阅读我的文章Wpf 椭圆可以';t在数据触发器中旋转,wpf,Wpf,我想在DataTrigger中将ProgressBar设置为true时旋转椭圆。但这是行不通的。 我测试椭圆的不透明度是否正常。但它不适用于RotateTransform。椭圆也与EventTrigger一起工作 这是我的错误,我如何修复它 谢谢你阅读我的文章 <Ellipse Name="ProgressEllipse" Width="40" Height="40" StrokeThickness="7" S
<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>
很抱歉,我没听到。我的问题不清楚。我已经修改了上面的问题