Timeline.DesiredFrameRate Angefügte Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die gewünschte Einzelbildrate für diese Zeitachse und deren untergeordnete Zeitachsen ab oder legt diese fest.
see GetDesiredFrameRate, and SetDesiredFrameRate
see GetDesiredFrameRate, and SetDesiredFrameRate
see GetDesiredFrameRate, and SetDesiredFrameRate
Beispiele
Im folgenden Beispiel wird die DesiredFrameRate-Eigenschaft verwendet, um mehrere Animationen auf 10 Frames pro Sekunde zu beschränken.
<!-- 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>
Hinweise
Verwenden Sie diese Eigenschaft, um eine bestimmte Bildfrequenz zu definieren, mit der Animationen ausgeführt werden sollen. Dies ist nur eine Richtlinie und kein garantierter Wert. Diese Eigenschaft hat zwei primäre Verwendungsmöglichkeiten:
Einschränken der Menge an Verarbeitungsressourcen für langsame Animationen von Hintergrundtypen, die kein hohes Maß an Genauigkeit erfordern. Dies kann erreicht werden, indem Sie einen kleinen Wert für die Bildfrequenz auf der Zeitachse festlegen.
Reduzieren der visuellen Auswirkungen von Tearing auf schnell bewegende horizontale Animationen. Dies kann erreicht werden, indem Sie einen hohen Wert für die Bildrate auf der Zeitachse festlegen.
Diese Eigenschaft kann nur auf einer Stammzeitachse festgelegt werden.