Timeline.DesiredFrameRate 附加屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定此時刻表及其子時刻表理想的畫面播放速率。
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>
備註
使用這個屬性來定義應該執行動畫的特定畫面播放速率。 這只是指導方針,而且不是保證的值。 此屬性有兩個主要用途:
限制緩慢移動的背景類型動畫處理資源數量,而不需要高度精確度的背景類型動畫。 這可藉由在時程表上設定小型畫面播放速率值來達成。
減少在快速移動水準動畫上卸載的視覺影響。 這可以藉由在時間軸上設定高畫面播放速率值來達成。
此屬性只能在根時程表上設定。