0

長方形の下の GeometryDrawing のグラデーションの色が変わるように、長方形のマウスオーバーをアニメーション化しようとしています。

ただし、そうすると、次のエラーが表示されます。

Cannot resolve all property references in the property path 'Drawing.(0).(1)[0].(2)'. Verify that applicable objects support the properties.

私が使用しているコードは以下のとおりです。

<Canvas>
    <Rectangle Width="{Binding ElementName=ParentControl, Path=Width}" Height="{Binding ElementName=ParentControl, Path=Height}">
        <Rectangle.Resources>
        </Rectangle.Resources>
        <Rectangle.Style>
            <Style TargetType="Rectangle">
                <Style.Triggers>
                    <EventTrigger RoutedEvent="MouseEnter">
                        <BeginStoryboard>
                            <Storyboard>
                                <ColorAnimation Storyboard.TargetProperty="Drawing.(GeometryDrawing.Brush).(RadialGradientBrush.GradientStops)[0].(GradientStop.Color)" To="#486A71" Duration="0:0:0.5"></ColorAnimation>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                    <EventTrigger RoutedEvent="MouseLeave">
                        <BeginStoryboard>
                            <Storyboard>
                                <ColorAnimation Storyboard.TargetProperty="Drawing.(GeometryDrawing.Brush).(RadialGradientBrush.GradientStops)[0].(GradientStop.Color)" To="#485A71" Duration="0:0:0.5" FillBehavior="Stop"></ColorAnimation>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Style.Triggers>
            </Style>
        </Rectangle.Style>
        <Rectangle.Fill>
            <DrawingBrush>
                <DrawingBrush.Drawing>
                    <GeometryDrawing>
                        <GeometryDrawing.Geometry>
                            <GeometryGroup>
                                <PathGeometry>
                                    <PathFigure StartPoint="2,0">
                                        <PathFigure.Segments>
                                            <LineSegment Point="200,0"></LineSegment>
                                            <LineSegment Point="200,7"></LineSegment>
                                            <LineSegment Point="185,20"></LineSegment>
                                            <LineSegment Point="200,33"></LineSegment>
                                            <LineSegment Point="200,40"></LineSegment>
                                            <LineSegment Point="2,40"></LineSegment>
                                        </PathFigure.Segments>
                                    </PathFigure>
                                </PathGeometry>
                            </GeometryGroup>
                        </GeometryDrawing.Geometry>
                        <GeometryDrawing.Brush>
                            <RadialGradientBrush GradientOrigin="0, 0.5" Center="0, 0.5" RadiusX="0.90" RadiusY="0.6">
                                <RadialGradientBrush.GradientStops>
                                    <GradientStop Color="#485A71" Offset="0" x:Name="GradientStop0"></GradientStop>
                                    <GradientStop Color="#687F9F" Offset="1" x:Name="GradientStop1"></GradientStop>
                                </RadialGradientBrush.GradientStops>
                            </RadialGradientBrush>
                        </GeometryDrawing.Brush>
                        <GeometryDrawing.Pen>
                            <Pen Thickness="2" Brush="#374C6A" />
                        </GeometryDrawing.Pen>
                    </GeometryDrawing>
                </DrawingBrush.Drawing>
            </DrawingBrush>
        </Rectangle.Fill>
    </Rectangle>
</Canvas>

属性の値を整理する必要があることは理解していStoryboard.TargetPropertyますが、まだ WPF を学習しているため、これを修正する方法がよくわかりません!

4

1 に答える 1

0

OK私はばかを感じます!グラデーションを参照するときに 1 つのプロパティを見逃したようです!

また、プロパティを見つけるときに括弧を使用する必要がないこともわかりました。

<ColorAnimation Storyboard.TargetProperty="Fill.Drawing.Brush.GradientStops[0].Color" To="#486A71" Duration="0:0:0.5"></ColorAnimation>

この回答からヒントを得ました: Trouble animating RadialGradientBrush in WPF

于 2013-02-14T10:25:26.643 に答える