Timeline.DesiredFrameRate Propiedad adjunta

Definición

Obtiene o establece la velocidad de fotograma deseada para esta escala de tiempo y sus escalas de tiempo secundarias.

see GetDesiredFrameRate, and SetDesiredFrameRate
see GetDesiredFrameRate, and SetDesiredFrameRate
see GetDesiredFrameRate, and SetDesiredFrameRate

Ejemplos

En el ejemplo siguiente se usa la propiedad DesiredFrameRate para limitar varias animaciones a 10 fotogramas por segundo.

<!-- DesiredFrameRateExample.xaml
     This example shows how to use the DesiredFrameRate property. 
     Two DrawingBrushes are animated. The desired frame rate is
     set on one group of animations but not the other, for comparison. -->
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  WindowTitle="DesiredFrameRate Example" Background="White">
  <Page.Resources>
  
    <!-- The Drawing used by the animated DrawingBrush. -->
    <DrawingGroup x:Key="CheckerDrawing">
      <GeometryDrawing Brush="White">
        <GeometryDrawing.Geometry>
          <RectangleGeometry Rect="0,0,100,100" />
        </GeometryDrawing.Geometry>
      </GeometryDrawing>
      <GeometryDrawing Brush="Gray">
        <GeometryDrawing.Geometry>
          <RectangleGeometry Rect="0,0,50,50" />
        </GeometryDrawing.Geometry>
      </GeometryDrawing>
      <GeometryDrawing Brush="Gray">
        <GeometryDrawing.Geometry>
          <RectangleGeometry Rect="50,50,50,50" />
        </GeometryDrawing.Geometry>
      </GeometryDrawing>        
    </DrawingGroup>
  </Page.Resources>

  <StackPanel Margin="10">  
    <Rectangle 
      Width="200" Height="200" Margin="10"
      Stroke="Black" StrokeThickness="1" >
      <Rectangle.Fill>
        <DrawingBrush 
          Drawing="{StaticResource CheckerDrawing}"
          Viewport="0,0,50,50" 
          ViewportUnits="Absolute"
          TileMode="Tile"> 
          <DrawingBrush.RelativeTransform>
            <TransformGroup>
              <RotateTransform 
                x:Name="AnimatedRotateTransform1"
                CenterX="0.5" CenterY="0.5" />
              <ScaleTransform
                x:Name="AnimatedScaleTransform1"
                CenterX="0.5" CenterY="0.5" />
            </TransformGroup>
          </DrawingBrush.RelativeTransform>
        </DrawingBrush> 
      </Rectangle.Fill>
      <Rectangle.Triggers>
        <EventTrigger RoutedEvent="Rectangle.Loaded">
          <BeginStoryboard>
          
            <!-- Set the desired framerate on the root timeline. 
                 The animations that belong to this storyboard
                 will be limited to 10 frames per second. -->
            <Storyboard Timeline.DesiredFrameRate="10">
              <DoubleAnimation 
                Storyboard.TargetName="AnimatedRotateTransform1"
                Storyboard.TargetProperty="Angle"
                From="0" To="360" 
                Duration="0:1:00" 
                AutoReverse="True"
                RepeatBehavior="Forever"
                />
              <DoubleAnimation 
                Storyboard.TargetName="AnimatedScaleTransform1"
                Storyboard.TargetProperty="ScaleX"
                From="1" To="5" 
                Duration="0:0:30" 
                AutoReverse="True"
                RepeatBehavior="Forever"
                />
              <DoubleAnimation 
                Storyboard.TargetName="AnimatedScaleTransform1"
                Storyboard.TargetProperty="ScaleY"
                From="1" To="5" 
                Duration="0:0:45" 
                AutoReverse="True"
                RepeatBehavior="Forever"
                />               
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger>
      </Rectangle.Triggers>
    </Rectangle>
 
    <Rectangle 
      Width="200" Height="200" Margin="10"
      Stroke="Black" StrokeThickness="1">
      <Rectangle.Fill>
        <DrawingBrush 
          Drawing="{StaticResource CheckerDrawing}"
          Viewport="0,0,50,50" 
          ViewportUnits="Absolute"
          TileMode="Tile">
          <DrawingBrush.RelativeTransform>
            <TransformGroup>
              <RotateTransform 
                x:Name="AnimatedRotateTransform2"
                CenterX="0.5" CenterY="0.5" />
              <ScaleTransform
                x:Name="AnimatedScaleTransform2"
                CenterX="0.5" CenterY="0.5" />
            </TransformGroup>
          </DrawingBrush.RelativeTransform>
        </DrawingBrush> 
      </Rectangle.Fill>
      <Rectangle.Triggers>
        <EventTrigger RoutedEvent="Rectangle.Loaded">
          <BeginStoryboard>
          
            <!-- The animations that belong to this storyboard
                 will run at full speed. -->
            <Storyboard>
              <DoubleAnimation 
                Storyboard.TargetName="AnimatedRotateTransform2"
                Storyboard.TargetProperty="Angle"
                From="0" To="360" 
                Duration="0:1:00" 
                AutoReverse="True"
                RepeatBehavior="Forever"
                />
              <DoubleAnimation 
                Storyboard.TargetName="AnimatedScaleTransform2"
                Storyboard.TargetProperty="ScaleX"
                From="1" To="5" 
                Duration="0:0:30" 
                AutoReverse="True"
                RepeatBehavior="Forever"
                />
              <DoubleAnimation 
                Storyboard.TargetName="AnimatedScaleTransform2"
                Storyboard.TargetProperty="ScaleY"
                From="1" To="5" 
                Duration="0:0:45" 
                AutoReverse="True"
                RepeatBehavior="Forever"
                />               
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger>
      </Rectangle.Triggers>      
    </Rectangle> 
  
  
  </StackPanel>
  
    


</Page>

Comentarios

Utilice esta propiedad para definir una velocidad de fotogramas específica a la que se deben ejecutar animaciones.  Esto es solo una guía y no es un valor garantizado. Esta propiedad tiene dos usos principales:

  • Limitar la cantidad de recursos de procesamiento para animaciones de tipo de fondo lentas que no requieren un alto grado de fidelidad. Esto se puede lograr estableciendo un valor de velocidad de fotogramas pequeño en la escala de tiempo.

  • Reducir el impacto visual del desgarro en animaciones horizontales de movimiento rápido. Esto se puede lograr estableciendo un valor de velocidad de fotogramas alto en la escala de tiempo.

Esta propiedad solo se puede establecer en una escala de tiempo raíz.

Se aplica a

Consulte también