Timeline.DesiredFrameRate Propiedad adjunta
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.