我无法在我的 WPF 应用程序中解析来自 Storyboard.TargetProperty 的路径
I cannot resolve the path from Storyboard.TargetProperty in my WPF app
在我的 WPF 应用程序中,我有一个特定元素的动画。要设置动画的元素如下所示。
<Path x:Name="theX" StrokeThickness="7" StrokeStartLineCap="Round" StrokeEndLineCap="Round">
<Path.Data>
<GeometryGroup>
<LineGeometry StartPoint="4, 4" EndPoint="60, 60"/>
<LineGeometry StartPoint="4, 60" EndPoint="60, 4"/>
</GeometryGroup>
</Path.Data>
</Path>
LineGeometry
元素的颜色应该是动画的,但我不知道Storyboard.TargetProperty
路径是如何解析的。在这种情况下,GeometryGroup
元素会导致问题。 GeometryGroup
元素是如何容纳在Storyboard.TargetProperty
的路径中的,看三个“???”。
我已经尝试过以下方法:
...).GeometryGroup.(...
...).(GeometryGroup.Children).(...
...).GeometryCollection.(...
...我也试过了 (Path.Stroke).(SolidColorBrush.Color)
<ColorAnimationUsingKeyFrames BeginTime="0:0:1" Duration="0:0:1"
Storyboard.TargetName="theX"
Storyboard.TargetProperty="(Path.Stroke).???.(SolidColorBrush.Color)"
FillBehavior="Stop">
<DiscreteColorKeyFrame Value="#333333" KeyTime="0:0:0"/>
<LinearColorKeyFrame Value="#6AFF00" KeyTime="0:0:0.2"/>
<DiscreteColorKeyFrame Value="#6AFF00" KeyTime="0:0:0.5"/>
<LinearColorKeyFrame Value="#333333" KeyTime="0:0:0.9"/>
</ColorAnimationUsingKeyFrames>
几何元素是具有数据绑定的 ItemsControl
的 DataTemplat
的一部分。我在通过数据绑定链接的 .NET 属性 上得到一个异常。
异常翻译:
System.InvalidOperationException:“属性 路径中并非所有 属性 引用”(0).GeometryGroup。 (1)“可以解决。确保合适的对象支持该属性。”
在应用程序中有一个类似的元素,一个 EllipseGeometry
,其中动画以这种方式工作。区别在于 GeometryGroup
元素。
<Path x:Name="theO" StrokeThickness="6" Stroke="Transparent">
<Path.Data>
<EllipseGeometry Center="25, 25" RadiusX="22" RadiusY="22"/>
</Path.Data>
</Path>
<ColorAnimationUsingKeyFrames BeginTime="0:0:1" Duration="0:0:1"
Storyboard.TargetName="theO"
Storyboard.TargetProperty="(Path.Stroke).(SolidColorBrush.Color)"
FillBehavior="Stop">
<DiscreteColorKeyFrame Value="#333333" KeyTime="0:0:0"/>
<LinearColorKeyFrame Value="#FF4F00" KeyTime="0:0:0.2"/>
<DiscreteColorKeyFrame Value="#FF4F00" KeyTime="0:0:0.5"/>
<LinearColorKeyFrame Value="#333333" KeyTime="0:0:0.9"/>
</ColorAnimationUsingKeyFrames>
非常感谢您的帮助。
请注意,在工作示例中,您将透明画笔设置为描边 属性。
但是在第一个示例中,没有为此 属性.
设置任何内容
因此它是空的。
而且 null 没有属性来为它们设置动画。
您可以在此 属性 中显式设置 SolidColorBrush 实例,为该实例命名,并直接访问其颜色 属性。
它会比所有这些演员都容易得多。
示例:
<Path x:Name="theX" StrokeThickness="7" StrokeStartLineCap="Round" StrokeEndLineCap="Round">
<Path.Stroke>
<SolidColorBrush x:Name="PathStroke" Color="Transparent"/>
</Path.Stroke>
<Path.Data>
<GeometryGroup>
<LineGeometry StartPoint="4, 4" EndPoint="60, 60"/>
<LineGeometry StartPoint="4, 60" EndPoint="60, 4"/>
</GeometryGroup>
</Path.Data>
</Path>
<ColorAnimationUsingKeyFrames BeginTime="0:0:1"
Duration="0:0:1"
Storyboard.TargetName="PathStroke"
Storyboard.TargetProperty="Color"
FillBehavior="Stop">
<DiscreteColorKeyFrame Value="#333333" KeyTime="0:0:0"/>
<LinearColorKeyFrame Value="#6AFF00" KeyTime="0:0:0.2"/>
<DiscreteColorKeyFrame Value="#6AFF00" KeyTime="0:0:0.5"/>
<LinearColorKeyFrame Value="#333333" KeyTime="0:0:0.9"/>
</ColorAnimationUsingKeyFrames>
在我的 WPF 应用程序中,我有一个特定元素的动画。要设置动画的元素如下所示。
<Path x:Name="theX" StrokeThickness="7" StrokeStartLineCap="Round" StrokeEndLineCap="Round">
<Path.Data>
<GeometryGroup>
<LineGeometry StartPoint="4, 4" EndPoint="60, 60"/>
<LineGeometry StartPoint="4, 60" EndPoint="60, 4"/>
</GeometryGroup>
</Path.Data>
</Path>
LineGeometry
元素的颜色应该是动画的,但我不知道Storyboard.TargetProperty
路径是如何解析的。在这种情况下,GeometryGroup
元素会导致问题。 GeometryGroup
元素是如何容纳在Storyboard.TargetProperty
的路径中的,看三个“???”。
我已经尝试过以下方法:
...).GeometryGroup.(...
...).(GeometryGroup.Children).(...
...).GeometryCollection.(...
...我也试过了 (Path.Stroke).(SolidColorBrush.Color)
<ColorAnimationUsingKeyFrames BeginTime="0:0:1" Duration="0:0:1"
Storyboard.TargetName="theX"
Storyboard.TargetProperty="(Path.Stroke).???.(SolidColorBrush.Color)"
FillBehavior="Stop">
<DiscreteColorKeyFrame Value="#333333" KeyTime="0:0:0"/>
<LinearColorKeyFrame Value="#6AFF00" KeyTime="0:0:0.2"/>
<DiscreteColorKeyFrame Value="#6AFF00" KeyTime="0:0:0.5"/>
<LinearColorKeyFrame Value="#333333" KeyTime="0:0:0.9"/>
</ColorAnimationUsingKeyFrames>
几何元素是具有数据绑定的 ItemsControl
的 DataTemplat
的一部分。我在通过数据绑定链接的 .NET 属性 上得到一个异常。
异常翻译:
System.InvalidOperationException:“属性 路径中并非所有 属性 引用”(0).GeometryGroup。 (1)“可以解决。确保合适的对象支持该属性。”
在应用程序中有一个类似的元素,一个 EllipseGeometry
,其中动画以这种方式工作。区别在于 GeometryGroup
元素。
<Path x:Name="theO" StrokeThickness="6" Stroke="Transparent">
<Path.Data>
<EllipseGeometry Center="25, 25" RadiusX="22" RadiusY="22"/>
</Path.Data>
</Path>
<ColorAnimationUsingKeyFrames BeginTime="0:0:1" Duration="0:0:1"
Storyboard.TargetName="theO"
Storyboard.TargetProperty="(Path.Stroke).(SolidColorBrush.Color)"
FillBehavior="Stop">
<DiscreteColorKeyFrame Value="#333333" KeyTime="0:0:0"/>
<LinearColorKeyFrame Value="#FF4F00" KeyTime="0:0:0.2"/>
<DiscreteColorKeyFrame Value="#FF4F00" KeyTime="0:0:0.5"/>
<LinearColorKeyFrame Value="#333333" KeyTime="0:0:0.9"/>
</ColorAnimationUsingKeyFrames>
非常感谢您的帮助。
请注意,在工作示例中,您将透明画笔设置为描边 属性。
但是在第一个示例中,没有为此 属性.
设置任何内容
因此它是空的。
而且 null 没有属性来为它们设置动画。
您可以在此 属性 中显式设置 SolidColorBrush 实例,为该实例命名,并直接访问其颜色 属性。
它会比所有这些演员都容易得多。
示例:
<Path x:Name="theX" StrokeThickness="7" StrokeStartLineCap="Round" StrokeEndLineCap="Round">
<Path.Stroke>
<SolidColorBrush x:Name="PathStroke" Color="Transparent"/>
</Path.Stroke>
<Path.Data>
<GeometryGroup>
<LineGeometry StartPoint="4, 4" EndPoint="60, 60"/>
<LineGeometry StartPoint="4, 60" EndPoint="60, 4"/>
</GeometryGroup>
</Path.Data>
</Path>
<ColorAnimationUsingKeyFrames BeginTime="0:0:1"
Duration="0:0:1"
Storyboard.TargetName="PathStroke"
Storyboard.TargetProperty="Color"
FillBehavior="Stop">
<DiscreteColorKeyFrame Value="#333333" KeyTime="0:0:0"/>
<LinearColorKeyFrame Value="#6AFF00" KeyTime="0:0:0.2"/>
<DiscreteColorKeyFrame Value="#6AFF00" KeyTime="0:0:0.5"/>
<LinearColorKeyFrame Value="#333333" KeyTime="0:0:0.9"/>
</ColorAnimationUsingKeyFrames>