【问题标题】:Animate DrawingImage GeometryDrawing Wpf Xaml动画绘图图像几何绘图 Wpf Xaml
【发布时间】:2016-07-19 11:19:46
【问题描述】:

我有一个 UserControl 并且想要为 GeometryDrawing 对象之一设置动画。 就我而言,有一个“circle1”,我想无限旋转。 有人可以帮我(故事板?我应该在哪里放置 xaml 代码?)?谢谢。

<UserControl.Resources>
        <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://sch.microsoft.com/winfx/2006/xaml">
        <DrawingImage x:Key="PumpOn">
            <DrawingImage.Drawing>
                <DrawingGroup>
                    <DrawingGroup.Children>
                        <GeometryDrawing Geometry="F1 M 214.557,193.691L 109.3,11.3306L 4,193.666L 214.557,193.691 Z ">
                            <GeometryDrawing.Pen>
                                <Pen LineJoin="Round" Brush="#FF00C800"/>
                            </GeometryDrawing.Pen>
                            <GeometryDrawing.Brush>
                                <LinearGradientBrush StartPoint="-0.00237454,0.5" EndPoint="1.00237,0.5">
                                    <LinearGradientBrush.GradientStops>
                                        <GradientStop Color="#FF46FF00" Offset="0"/>
                                        <GradientStop Color="#FFD6FFC5" Offset="0.5"/>
                                        <GradientStop Color="#FF46FF00" Offset="0.991379"/>
                                    </LinearGradientBrush.GradientStops>
                                </LinearGradientBrush>
                            </GeometryDrawing.Brush>
                        </GeometryDrawing>
                        <GeometryDrawing x:Name="circle1" Geometry="F1 M 109.604,10.0258C 177.463,10.0258 232.474,65.0365 232.474,132.896C 232.474,200.755 177.463,255.765 109.604,255.765C 41.7451,255.765 -13.2656,200.755 -13.2656,132.896C -13.2656,65.0365 41.745,10.0258 109.604,10.0258 Z ">
                            <GeometryDrawing.Pen>
                                <Pen Thickness="2" LineJoin="Round">
                                    <Pen.Brush>
                                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                            <GradientStop Color="#FF5DFF00" Offset="0"/>
                                            <GradientStop Color="#FF8D8D8D" Offset="0.448"/>
                                        </LinearGradientBrush>                                            
                                    </Pen.Brush>                                        
                                </Pen>
                            </GeometryDrawing.Pen>
                        </GeometryDrawing>
                    </DrawingGroup.Children>
                </DrawingGroup>
            </DrawingImage.Drawing>                
        </DrawingImage>
    </ResourceDictionary>

</UserControl.Resources>

【问题讨论】:

    标签: c# wpf xaml geometrydrawing


    【解决方案1】:

    您可以使用 ColorAnimation 进行如下操作:

    <Window.Triggers>
        <EventTrigger RoutedEvent="Window.Loaded">
            <BeginStoryboard>
                <Storyboard>
                    <ColorAnimation Storyboard.TargetName="myImage"  Storyboard.TargetProperty="Source.Drawing.Children[1].Pen.Brush.GradientStops[0].Color" To="#FF8D8D8D" Duration="0:0:0.5" AutoReverse="True"
                                RepeatBehavior="Forever"></ColorAnimation>
                    <ColorAnimation Storyboard.TargetName="myImage"  Storyboard.TargetProperty="Source.Drawing.Children[1].Pen.Brush.GradientStops[1].Color" To="#FF5DFF00" Duration="0:0:0.5" AutoReverse="True"
                                RepeatBehavior="Forever"></ColorAnimation>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Window.Triggers>
    <Grid>
        <Image x:Name="myImage">
            <Image.Source>
            <DrawingImage>
                <DrawingImage.Drawing>
                    <DrawingGroup>
                        <DrawingGroup.Children>
                            <GeometryDrawing Geometry="F1 M 214.557,193.691L 109.3,11.3306L 4,193.666L 214.557,193.691 Z ">
                                <GeometryDrawing.Pen>
                                    <Pen LineJoin="Round" Brush="#FF00C800"/>
                                </GeometryDrawing.Pen>
                                <GeometryDrawing.Brush>
                                    <LinearGradientBrush StartPoint="-0.00237454,0.5" EndPoint="1.00237,0.5">
                                        <LinearGradientBrush.GradientStops>
                                            <GradientStop Color="#FF46FF00" Offset="0"/>
                                            <GradientStop Color="#FFD6FFC5" Offset="0.5"/>
                                            <GradientStop Color="#FF46FF00" Offset="0.991379"/>
                                        </LinearGradientBrush.GradientStops>
                                    </LinearGradientBrush>
                                </GeometryDrawing.Brush>
                            </GeometryDrawing>
                            <GeometryDrawing x:Name="circle1" Geometry="F1 M 109.604,10.0258C 177.463,10.0258 232.474,65.0365 232.474,132.896C 232.474,200.755 177.463,255.765 109.604,255.765C 41.7451,255.765 -13.2656,200.755 -13.2656,132.896C -13.2656,65.0365 41.745,10.0258 109.604,10.0258 Z ">
                                <GeometryDrawing.Pen>
                                    <Pen Thickness="2" LineJoin="Round">
                                        <Pen.Brush>
                                            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                                <GradientStop Color="#FF5DFF00" Offset="0"/>
                                                <GradientStop Color="#FF8D8D8D" Offset="0.448"/>
                                            </LinearGradientBrush>
                                        </Pen.Brush>
                                    </Pen>
                                </GeometryDrawing.Pen>
                            </GeometryDrawing>
                        </DrawingGroup.Children>
                    </DrawingGroup>
                </DrawingImage.Drawing>
            </DrawingImage>
          </Image.Source>
        </Image>
    </Grid>
    

    【讨论】:

    • 谢谢,这很有效 - 但我无法在 ResourceDictionary 中集成图像
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多