Storyboard.SkipToFill 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将此情节提要的 Clock 当前时间提前到其有效期的末尾。
重载
SkipToFill(FrameworkElement) |
将此情节提要的 Clock 当前时间提前到其有效期的末尾。 |
SkipToFill(FrameworkContentElement) |
将此情节提要的 Clock 当前时间提前到其有效期的末尾。 |
SkipToFill() |
将此情节提要的 Clock 当前时间提前到其有效期的末尾。 |
SkipToFill(FrameworkElement)
将此情节提要的 Clock 当前时间提前到其有效期的末尾。
public:
void SkipToFill(System::Windows::FrameworkElement ^ containingObject);
public void SkipToFill (System.Windows.FrameworkElement containingObject);
member this.SkipToFill : System.Windows.FrameworkElement -> unit
Public Sub SkipToFill (containingObject As FrameworkElement)
参数
- containingObject
- FrameworkElement
在调用 Begin(FrameworkElement, Boolean) 方法时指定的对象。 此对象包含为此情节提要及其子级创建的 Clock 对象。
注解
此方法将情节提要的当前时间提前到其活动时段的结束时间;情节提要此时的行为由其 FillBehavior 设置指定。 如果 FillBehavior 设置为 HoldEnd,则情节提要填充;如果 属性设置为 Stop,情节提要将停止。
在具有无限持续时间的情节提要上调用此方法,无限次重复不起作用。 在非活动情节提要上调用此方法不起作用。
将时钟推进到其填充周期会 CurrentGlobalSpeedInvalidated 触发 和 CurrentStateInvalidated 事件。
若要以交互方式控制此情节提要,在调用用于开始情节提要的交互式方法时,必须使用相同的 containingObject
参数。 可控制的情节提要可以暂停、恢复、查找、停止和删除。 若要使情节提要在代码中可控制,必须使用情节提要 Begin 方法的适当重载并指定 true
以使其可控制。 有关示例,请参阅 如何:在情节提要启动后控制情节提要。
适用于
SkipToFill(FrameworkContentElement)
将此情节提要的 Clock 当前时间提前到其有效期的末尾。
public:
void SkipToFill(System::Windows::FrameworkContentElement ^ containingObject);
public void SkipToFill (System.Windows.FrameworkContentElement containingObject);
member this.SkipToFill : System.Windows.FrameworkContentElement -> unit
Public Sub SkipToFill (containingObject As FrameworkContentElement)
参数
- containingObject
- FrameworkContentElement
在调用 Begin(FrameworkContentElement, Boolean) 方法时指定的对象。 此对象包含为此情节提要及其子级创建的 Clock 对象。
示例
以下示例使用可控制的情节提要对 进行动画处理 TextEffect。 包含在 TextEffectFrameworkContentElement的名称范围内。
/*
This example shows how to control
a storyboard after it has started.
*/
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Windows.Media.Animation;
using System.Windows.Documents;
namespace Microsoft.Samples.Animation.AnimatingWithStoryboards
{
public class FrameworkContentElementControlStoryboardExample : FlowDocument
{
private Storyboard myStoryboard;
public FrameworkContentElementControlStoryboardExample()
{
// Create a name scope for the document.
NameScope.SetNameScope(this, new NameScope());
this.Background = Brushes.White;
// Create a run of text.
Run theText = new Run(
"Lorem ipsum dolor sit amet, consectetuer adipiscing elit." +
"Ut non lacus. Nullam a ligula id leo adipiscing ornare." +
" Duis mattis. ");
// Create a TextEffect
TextEffect animatedSpecialEffect = new TextEffect();
animatedSpecialEffect.Foreground = Brushes.OrangeRed;
animatedSpecialEffect.PositionStart = 0;
animatedSpecialEffect.PositionCount = 0;
// Assign the TextEffect a name by
// registering it with the page, so that
// it can be targeted by storyboard
// animations
this.RegisterName("animatedSpecialEffect", animatedSpecialEffect);
// Apply the text effect to the run.
theText.TextEffects = new TextEffectCollection();
theText.TextEffects.Add(animatedSpecialEffect);
// Create a paragraph to contain the run.
Paragraph animatedParagraph = new Paragraph(theText);
animatedParagraph.Background = Brushes.LightGray;
animatedParagraph.Padding = new Thickness(20);
this.Blocks.Add(animatedParagraph);
BlockUIContainer controlsContainer = new BlockUIContainer();
//
// Create an animation and a storyboard to animate the
// text effect.
//
Int32Animation countAnimation =
new Int32Animation(0, 127, TimeSpan.FromSeconds(10));
Storyboard.SetTargetName(countAnimation, "animatedSpecialEffect");
Storyboard.SetTargetProperty(countAnimation,
new PropertyPath(TextEffect.PositionCountProperty));
myStoryboard = new Storyboard();
myStoryboard.Children.Add(countAnimation);
//
// Create some buttons to control the storyboard
// and a panel to contain them.
//
StackPanel buttonPanel = new StackPanel();
buttonPanel.Orientation = Orientation.Vertical;
Button beginButton = new Button();
beginButton.Content = "Begin";
beginButton.Click += new RoutedEventHandler(beginButton_Clicked);
buttonPanel.Children.Add(beginButton);
Button pauseButton = new Button();
pauseButton.Content = "Pause";
pauseButton.Click +=new RoutedEventHandler(pauseButton_Clicked);
buttonPanel.Children.Add(pauseButton);
Button resumeButton = new Button();
resumeButton.Content = "Resume";
resumeButton.Click +=new RoutedEventHandler(resumeButton_Clicked);
buttonPanel.Children.Add(resumeButton);
Button skipToFillButton = new Button();
skipToFillButton.Content = "Skip to Fill";
skipToFillButton.Click +=new RoutedEventHandler(skipToFillButton_Clicked);
buttonPanel.Children.Add(skipToFillButton);
Button setSpeedRatioButton = new Button();
setSpeedRatioButton.Content = "Triple Speed";
setSpeedRatioButton.Click +=new RoutedEventHandler(setSpeedRatioButton_Clicked);
buttonPanel.Children.Add(setSpeedRatioButton);
Button stopButton = new Button();
stopButton.Content = "Stop";
stopButton.Click +=new RoutedEventHandler(stopButton_Clicked);
buttonPanel.Children.Add(stopButton);
Button removeButton = new Button();
removeButton.Content = "Remove";
removeButton.Click +=new RoutedEventHandler(removeButton_Clicked);
buttonPanel.Children.Add(removeButton);
controlsContainer.Child = buttonPanel;
this.Blocks.Add(controlsContainer);
}
// Begins the storyboard.
private void beginButton_Clicked(object sender, RoutedEventArgs args)
{
// Specifying "true" as the second Begin parameter
// makes this storyboard controllable.
myStoryboard.Begin(this, true);
}
// Pauses the storyboard.
private void pauseButton_Clicked(object sender, RoutedEventArgs args)
{
myStoryboard.Pause(this);
}
// Resumes the storyboard.
private void resumeButton_Clicked(object sender, RoutedEventArgs args)
{
myStoryboard.Resume(this);
}
// Advances the storyboard to its fill period.
private void skipToFillButton_Clicked(object sender, RoutedEventArgs args)
{
myStoryboard.SkipToFill(this);
}
// Updates the storyboard's speed.
private void setSpeedRatioButton_Clicked(object sender, RoutedEventArgs args)
{
// Makes the storyboard progress three times as fast as normal.
myStoryboard.SetSpeedRatio(this, 3);
}
// Stops the storyboard.
private void stopButton_Clicked(object sender, RoutedEventArgs args)
{
myStoryboard.Stop(this);
}
// Removes the storyboard.
private void removeButton_Clicked(object sender, RoutedEventArgs args)
{
myStoryboard.Remove(this);
}
}
}
'
' This example shows how to control
' a storyboard after it has started.
'
'
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
Imports System.Windows.Shapes
Imports System.Windows.Media.Animation
Imports System.Windows.Documents
Namespace Microsoft.Samples.Animation.AnimatingWithStoryboards
Public Class FrameworkContentElementControlStoryboardExample
Inherits FlowDocument
Private myStoryboard As Storyboard
Public Sub New()
' Create a name scope for the document.
NameScope.SetNameScope(Me, New NameScope())
Me.Background = Brushes.White
' Create a run of text.
Dim theText As New Run("Lorem ipsum dolor sit amet, consectetuer adipiscing elit." & "Ut non lacus. Nullam a ligula id leo adipiscing ornare." & " Duis mattis. ")
' Create a TextEffect
Dim animatedSpecialEffect As New TextEffect()
animatedSpecialEffect.Foreground = Brushes.OrangeRed
animatedSpecialEffect.PositionStart = 0
animatedSpecialEffect.PositionCount = 0
' Assign the TextEffect a name by
' registering it with the page, so that
' it can be targeted by storyboard
' animations
Me.RegisterName("animatedSpecialEffect", animatedSpecialEffect)
' Apply the text effect to the run.
theText.TextEffects = New TextEffectCollection()
theText.TextEffects.Add(animatedSpecialEffect)
' Create a paragraph to contain the run.
Dim animatedParagraph As New Paragraph(theText)
animatedParagraph.Background = Brushes.LightGray
animatedParagraph.Padding = New Thickness(20)
Me.Blocks.Add(animatedParagraph)
Dim controlsContainer As New BlockUIContainer()
'
' Create an animation and a storyboard to animate the
' text effect.
'
Dim countAnimation As New Int32Animation(0, 127, TimeSpan.FromSeconds(10))
Storyboard.SetTargetName(countAnimation, "animatedSpecialEffect")
Storyboard.SetTargetProperty(countAnimation, New PropertyPath(TextEffect.PositionCountProperty))
myStoryboard = New Storyboard()
myStoryboard.Children.Add(countAnimation)
'
' Create some buttons to control the storyboard
' and a panel to contain them.
'
Dim buttonPanel As New StackPanel()
buttonPanel.Orientation = Orientation.Vertical
Dim beginButton As New Button()
beginButton.Content = "Begin"
AddHandler beginButton.Click, AddressOf beginButton_Clicked
buttonPanel.Children.Add(beginButton)
Dim pauseButton As New Button()
pauseButton.Content = "Pause"
AddHandler pauseButton.Click, AddressOf pauseButton_Clicked
buttonPanel.Children.Add(pauseButton)
Dim resumeButton As New Button()
resumeButton.Content = "Resume"
AddHandler resumeButton.Click, AddressOf resumeButton_Clicked
buttonPanel.Children.Add(resumeButton)
Dim skipToFillButton As New Button()
skipToFillButton.Content = "Skip to Fill"
AddHandler skipToFillButton.Click, AddressOf skipToFillButton_Clicked
buttonPanel.Children.Add(skipToFillButton)
Dim setSpeedRatioButton As New Button()
setSpeedRatioButton.Content = "Triple Speed"
AddHandler setSpeedRatioButton.Click, AddressOf setSpeedRatioButton_Clicked
buttonPanel.Children.Add(setSpeedRatioButton)
Dim stopButton As New Button()
stopButton.Content = "Stop"
AddHandler stopButton.Click, AddressOf stopButton_Clicked
buttonPanel.Children.Add(stopButton)
Dim removeButton As New Button()
removeButton.Content = "Remove"
AddHandler removeButton.Click, AddressOf removeButton_Clicked
buttonPanel.Children.Add(removeButton)
controlsContainer.Child = buttonPanel
Me.Blocks.Add(controlsContainer)
End Sub
' Begins the storyboard.
Private Sub beginButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
' Specifying "true" as the second Begin parameter
' makes this storyboard controllable.
myStoryboard.Begin(Me, True)
End Sub
' Pauses the storyboard.
Private Sub pauseButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
myStoryboard.Pause(Me)
End Sub
' Resumes the storyboard.
Private Sub resumeButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
myStoryboard.Resume(Me)
End Sub
' Advances the storyboard to its fill period.
Private Sub skipToFillButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
myStoryboard.SkipToFill(Me)
End Sub
' Updates the storyboard's speed.
Private Sub setSpeedRatioButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
' Makes the storyboard progress three times as fast as normal.
myStoryboard.SetSpeedRatio(Me, 3)
End Sub
' Stops the storyboard.
Private Sub stopButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
myStoryboard.Stop(Me)
End Sub
' Removes the storyboard.
Private Sub removeButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
myStoryboard.Remove(Me)
End Sub
End Class
End Namespace
注解
此方法将情节提要的当前时间提前到其活动时段的结束时间;情节提要此时的行为由其 FillBehavior 设置指定。 如果 FillBehavior 设置为 HoldEnd,则情节提要填充;如果 属性设置为 Stop,情节提要将停止。
在具有无限持续时间的情节提要上调用此方法,无限次重复不起作用。 在非活动情节提要上调用此方法不起作用。
将时钟推进到其填充周期会 CurrentGlobalSpeedInvalidated 触发 和 CurrentStateInvalidated 事件。
若要以交互方式控制此情节提要,在调用用于开始情节提要的交互式方法时,必须使用相同的 containingObject
参数。 可控制的情节提要可以暂停、恢复、查找、停止和删除。 若要使情节提要在代码中可控制,必须使用情节提要 Begin 方法的适当重载并指定 true
以使其可控制。 有关示例,请参阅 如何:在情节提要启动后控制情节提要。
适用于
SkipToFill()
将此情节提要的 Clock 当前时间提前到其有效期的末尾。
public:
void SkipToFill();
public void SkipToFill ();
member this.SkipToFill : unit -> unit
Public Sub SkipToFill ()
注解
可控制的情节提要可以暂停、恢复、查找、停止和删除。 若要使情节提要在代码中可控制,必须使用情节提要 Begin 方法的适当重载并指定 true
以使其可控制。 有关示例,请参阅 如何:在情节提要启动后控制情节提要。