2016-07-26 18 views
0

コードビハインドを使用せずにボタンをクリックすると、以下のカラーアニメーションがどのようにトリガーされますか?XAMLボタンからアニメーションを開始

私は手続き的にアニメーションを開始する方法を知っていますが、ここではすべてをXAMLに保存したいと考えています。それはそれはに含まれているGridの負荷によってトリガーされるので

現在のアニメーションは、すべての時間を実行します。

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="auto"></RowDefinition> 
      <RowDefinition Height="*"></RowDefinition> 
     </Grid.RowDefinitions> 
     <Grid.Triggers> 
      <EventTrigger RoutedEvent="Grid.Loaded"> 
       <BeginStoryboard> 
        <Storyboard> 
         <ColorAnimation 
          Storyboard.TargetName="ChangingBrush" 
          Storyboard.TargetProperty="Color" 
          From="White" 
          To="Blue" 
          Duration="0:0:2" 
          AutoReverse="True" 
          RepeatBehavior="Forever"></ColorAnimation> 
        </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger> 
     </Grid.Triggers> 
     <Button 
      Grid.Row="0">Do Work</Button> 
     <Image Grid.Row="1"> 
      <Image.Source> 
       <DrawingImage> 
        <DrawingImage.Drawing> 
         <GeometryDrawing> 
          <GeometryDrawing.Brush> 
           <SolidColorBrush x:Name="ChangingBrush" Color="LightBlue"></SolidColorBrush> 
          </GeometryDrawing.Brush> 
          <GeometryDrawing.Geometry> 
           <EllipseGeometry RadiusX="1" RadiusY="1"></EllipseGeometry> 
          </GeometryDrawing.Geometry> 
         </GeometryDrawing> 
        </DrawingImage.Drawing> 
       </DrawingImage> 
      </Image.Source> 
     </Image> 
    </Grid> 
</Window> 

答えて

1

あなたのボタンの名前を付けて、それにトリガをバインドします。繰り返し続けることを望まない場合は、RepeatBehavior="Forever"></ColorAnimation>RepeatBehavior="1x"></ColorAnimation>またはlook here for further optionsのように置き換えてください。

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="auto"></RowDefinition> 
      <RowDefinition Height="*"></RowDefinition> 
     </Grid.RowDefinitions> 
     <Grid.Triggers> 
      <EventTrigger RoutedEvent="Button.Click" SourceName="BeginButton"> 
       <BeginStoryboard> 
        <Storyboard> 
         <ColorAnimation 
          Storyboard.TargetName="ChangingBrush" 
          Storyboard.TargetProperty="Color" 
          From="White" 
          To="Blue" 
          Duration="0:0:2" 
          AutoReverse="True" 
          RepeatBehavior="Forever"></ColorAnimation> 
        </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger> 
     </Grid.Triggers> 
     <Button 
      Name="BeginButton" 
      Grid.Row="0">Do Work</Button> 
     <Image Grid.Row="1"> 
      <Image.Source> 
       <DrawingImage> 
        <DrawingImage.Drawing> 
         <GeometryDrawing> 
          <GeometryDrawing.Brush> 
           <SolidColorBrush x:Name="ChangingBrush" Color="LightBlue"></SolidColorBrush> 
          </GeometryDrawing.Brush> 
          <GeometryDrawing.Geometry> 
           <EllipseGeometry RadiusX="1" RadiusY="1"></EllipseGeometry> 
          </GeometryDrawing.Geometry> 
         </GeometryDrawing> 
        </DrawingImage.Drawing> 
       </DrawingImage> 
      </Image.Source> 
     </Image> 
    </Grid> 
</Window> 
+0

答えとして別のものを提供したので、私はその特定の例に注意を払わなかったので、代わりに私はdelineして+1しました。 –

関連する問題