Modifica

Condividi tramite


MatrixAnimationUsingPath.IsAdditive Property

Definition

Gets or sets a value that indicates whether the target property's current value should be added to this animation's starting value.

public:
 property bool IsAdditive { bool get(); void set(bool value); };
public bool IsAdditive { get; set; }
member this.IsAdditive : bool with get, set
Public Property IsAdditive As Boolean

Property Value

true if the target property's current value should be added to this animation's starting value; otherwise, false. The default is false.

Examples

The following example uses two similar MatrixAnimationUsingPath animations to animate the same rectangle. The first animation's IsAdditive property is set to false, so it always animates the rectangle from (0,0), the animation's starting value. The second animation has the same target values (their PathGeometry settings are identical), but its IsAdditive property is set to true; as a result, it animates the rectangle from whatever position it is at when the animation is applied.

<Page 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
  xmlns:PresentationOptions="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options" 
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  mc:Ignorable="PresentationOptions">
  <StackPanel>
      
    <!-- The Rectangle that is animated across the screen by animating
         the MatrixTransform applied to the button. -->
    <Rectangle 
      Width="50" Height="20"
      Fill="Blue"
      HorizontalAlignment="Left"
      VerticalAlignment="Top">
      <Rectangle.RenderTransform>
        <MatrixTransform x:Name="myMatrixTransform">
          <MatrixTransform.Matrix >
            <Matrix OffsetX="10" OffsetY="100"/>
          </MatrixTransform.Matrix>
        </MatrixTransform>
      </Rectangle.RenderTransform>
    </Rectangle>
    
    <StackPanel Margin="0,200,0,0" Orientation="Horizontal">
    <Button Content="Animate with IsAdditive set to False"
      HorizontalAlignment="Left" Padding="5">
      <Button.Triggers>
        <EventTrigger RoutedEvent="Button.Click">
          <BeginStoryboard>
            <Storyboard>
            
              <!-- This animation always moves the 
                   rectangle back to (0,0). -->
              <MatrixAnimationUsingPath
                Storyboard.TargetName="myMatrixTransform"
                Storyboard.TargetProperty="Matrix"
                Duration="0:0:2" 
                DoesRotateWithTangent="True" 
                IsAdditive="False">
                <MatrixAnimationUsingPath.PathGeometry>
                  <PathGeometry 
                    Figures="M 0,0 C 35,0 135,0 160,100 180,190 285,200 310,100" />
                </MatrixAnimationUsingPath.PathGeometry>
              </MatrixAnimationUsingPath>
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger>
      </Button.Triggers>   
    </Button>
    
     <Button Content="Animate with IsAdditive set to True"
      HorizontalAlignment="Left" 
      Padding="5">
      <Button.Triggers>
        <EventTrigger RoutedEvent="Button.Click">
          <BeginStoryboard>
            <Storyboard>
            
              <!-- This animation moves the rectangle from 
                   its current position. -->
              <MatrixAnimationUsingPath
                Storyboard.TargetName="myMatrixTransform"
                Storyboard.TargetProperty="Matrix"
                Duration="0:0:2" 
                DoesRotateWithTangent="True"
                IsAdditive="True">
                <MatrixAnimationUsingPath.PathGeometry>
                  <PathGeometry 
                    Figures="M 0,0 C 35,0 135,0 160,100 180,190 285,200 310,100" />
                </MatrixAnimationUsingPath.PathGeometry>
              </MatrixAnimationUsingPath>
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger>
      </Button.Triggers>   
    </Button>   
    </StackPanel>
    
    
  </StackPanel>
</Page>

Remarks

Dependency Property Information

Item Value
Identifier field IsAdditiveProperty
Metadata properties set to true None

Note

This dependency property is unusual because the identifier field for it comes from AnimationTimeline and is shared by various derived classes.

Applies to