Как я могу анимировать свойства GeometryDrawing? - PullRequest
2 голосов
/ 20 января 2011

Я пытаюсь сделать причудливый мигающий значок и анимировать кисть GeometryDrawing и не могу понять, как это сделать. Возможно ли это?

Вот немного базы xaml

<Window.Resources>
     <GeometryDrawing x:Key="_geometryTest" Brush="#FF6C897B"  Geometry="F1 M 66,188L 194,60L 322,188L 250.889,188L 250.889,348L 137.111,348L 137.111,188L 66,188 Z ">
         <GeometryDrawing.Pen>
            <Pen LineJoin="Round" Brush="#FF000000"/>
        </GeometryDrawing.Pen>      
     </GeometryDrawing>
</Window.Resources>
<Grid>
    <Image>
        <Image.Source>
            <DrawingImage x:Name="_myImage" Drawing="{StaticResource _geometryTest}"/>
        </Image.Source>
    </Image>
  </Grid>

1 Ответ

2 голосов
/ 20 января 2011

Используйте ColorAnimation для этого.В этом примере анимация запускается при загрузке Window

<Window.Resources>
    <GeometryDrawing x:Key="_geometryTest"
                     Brush="#FF6C897B"
                     Geometry="F1 M 66,188L 194,60L 322,188L 250.889,188L 250.889,348L 137.111,348L 137.111,188L 66,188 Z">
        <GeometryDrawing.Pen>
            <Pen LineJoin="Round" Brush="#FF000000"/>
        </GeometryDrawing.Pen>
    </GeometryDrawing>
</Window.Resources>
<Window.Triggers>
    <EventTrigger RoutedEvent="Window.Loaded">
        <BeginStoryboard>
            <Storyboard>
                <ColorAnimation Storyboard.TargetName="myImage" 
                                Storyboard.TargetProperty="(Image.Source).(DrawingImage.Drawing).(GeometryDrawing.Brush).(SolidColorBrush.Color)"
                                To="Red"
                                Duration="0:0:0.5"
                                AutoReverse="True"
                                RepeatBehavior="Forever" />
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
</Window.Triggers>
<Grid>
    <Image Name="myImage">
        <Image.Source>
            <DrawingImage x:Name="_myImage" Drawing="{StaticResource _geometryTest}"/>
        </Image.Source>
    </Image>
</Grid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...