Timeline.DesiredFrameRate Присоединенное свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает или задает нужную частоту кадров для шкалы времени и ее дочерних шкал времени.
see GetDesiredFrameRate, and SetDesiredFrameRate
see GetDesiredFrameRate, and SetDesiredFrameRate
see GetDesiredFrameRate, and SetDesiredFrameRate
Примеры
В следующем примере свойство DesiredFrameRate используется для ограничения нескольких анимаций до 10 кадров в секунду.
<!-- 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>
Комментарии
Это свойство используется для определения определенной частоты кадров, с которой должны выполняться анимации.Это только руководство и не является гарантированным значением. Это свойство имеет два основных использования:
Ограничение объема ресурсов обработки для анимации медленно перемещающихся фоновых типов, которые не требуют высокой степени точности. Это можно сделать, задав небольшое значение частоты кадров на временной шкале.
Уменьшение визуального влияния разрыва на быстро перемещающиеся горизонтальные анимации. Это можно сделать, задав значение высокой частоты кадров на временной шкале.
Это свойство может быть задано только на корневой временной шкале.