FrameworkElement.BeginStoryboard 方法

定義

開始所提供分鏡腳本中包含的動作順序。

多載

BeginStoryboard(Storyboard)

開始所提供分鏡腳本中包含的動作序列。

BeginStoryboard(Storyboard, HandoffBehavior)

開始所提供分鏡腳本中包含的動作序列,並針對屬性已產生動畫效果時所指定的選項。

BeginStoryboard(Storyboard, HandoffBehavior, Boolean)

開始所提供分鏡腳本中包含的動作序列,並在動畫啟動之後,具有控制動畫的指定狀態。

BeginStoryboard(Storyboard)

開始所提供分鏡腳本中包含的動作序列。

C#
public void BeginStoryboard (System.Windows.Media.Animation.Storyboard storyboard);

參數

storyboard
Storyboard

要開始的分鏡腳本。

範例

下列範例會從資源擷取 Storyboard,然後在處理內部事件時執行該 Storyboard

C#
private void OnImage1Animate(object sender, RoutedEventArgs e)
{
    Storyboard s;

    s = (Storyboard)this.FindResource("RotateStoryboard");
    this.BeginStoryboard(s);
}

備註

大多數典型的動畫案例不會使用此方法。 一般而言,您會在標記中建立 StoryboardBeginStoryboard 項目,然後將這些專案放在元素上做為 EventTrigger 內容。 由 事件觸發時,動畫接著會執行。 Storyboard 的大部分控件層面都可以由標記中公開的屬性來尋址。

對於未使用 isControllable、參數或指定該參數 false的簽章,只要動畫到達 “Fill” 期間,就會移除與動畫相關聯的時間軸時鐘。 因此,執行一次之後,就無法重新啟動動畫。 控制動畫也需要腳本具有 x:Name 指示詞,或可透過程式代碼中的參考存取。

適用於

.NET Framework 4.8.1 及其他版本
產品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

BeginStoryboard(Storyboard, HandoffBehavior)

開始所提供分鏡腳本中包含的動作序列,並針對屬性已產生動畫效果時所指定的選項。

C#
public void BeginStoryboard (System.Windows.Media.Animation.Storyboard storyboard, System.Windows.Media.Animation.HandoffBehavior handoffBehavior);

參數

storyboard
Storyboard

要開始的分鏡腳本。

handoffBehavior
HandoffBehavior

列舉值,這個值描述腳本中所述的屬性已經以動畫顯示時所要使用的行為。

範例

下列範例會從資源擷取 Storyboard,然後在處理內部事件時執行該 Storyboard

C#
private void OnImage1Animate(object sender, RoutedEventArgs e)
{
    Storyboard s;

    s = (Storyboard)this.FindResource("RotateStoryboard");
    this.BeginStoryboard(s);
}

備註

大多數典型的動畫案例不會使用此方法。 一般而言,您會在標記中建立 StoryboardBeginStoryboard 項目,然後將這些專案放在元素上做為 EventTrigger 內容。 由 事件觸發時,動畫接著會執行。 Storyboard 的大部分控件層面都可以由標記中公開的屬性來尋址。

對於未使用 isControllable、參數或指定該參數 false的簽章,只要動畫到達 “Fill” 期間,就會移除與動畫相關聯的時間軸時鐘。 因此,執行一次之後,就無法重新啟動動畫。 控制動畫也需要腳本具有 x:Name 指示詞,或可透過程式代碼中的參考存取。

交接行為可以指定為 BeginStoryboard的屬性。

使用 Compose HandoffBehavior

當您使用 ComposeHandoffBehaviorStoryboardAnimationTimelineAnimationClock 套用至屬性時,先前與該屬性相關聯的任何 Clock 對象都會繼續取用系統資源:計時系統不會自動移除時鐘。

若要避免當您使用 Compose套用大量時鐘時發生效能問題,您應該在時鐘完成之後,從動畫屬性中移除撰寫時鐘。 有數種方式可以移除時鐘:

這主要是物件上具有較長存留期之動畫的問題。 當物件被垃圾收集時,其時鐘也會中斷連線並垃圾收集。

如需時鐘物件的詳細資訊,請參閱 動畫和計時系統概觀

適用於

.NET Framework 4.8.1 及其他版本
產品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

BeginStoryboard(Storyboard, HandoffBehavior, Boolean)

開始所提供分鏡腳本中包含的動作序列,並在動畫啟動之後,具有控制動畫的指定狀態。

C#
public void BeginStoryboard (System.Windows.Media.Animation.Storyboard storyboard, System.Windows.Media.Animation.HandoffBehavior handoffBehavior, bool isControllable);

參數

storyboard
Storyboard

要開始的分鏡腳本。

handoffBehavior
HandoffBehavior

列舉值,這個值描述腳本中所述的屬性已經以動畫顯示時所要使用的行為。

isControllable
Boolean

宣告動畫在啟動后是否可控制(可以暫停)。

備註

大多數典型的動畫案例不會使用此方法。 一般而言,您會在標記中建立 StoryboardBeginStoryboard 項目,然後將這些專案放在元素上做為 EventTrigger 內容。 由 事件觸發時,動畫接著會執行。 Storyboard 的大部分控件層面都可以由標記中公開的屬性來尋址。

對於未使用 isControllable、參數或指定該參數 false的簽章,只要動畫到達 “Fill” 期間,就會移除與動畫相關聯的時間軸時鐘。 因此,執行一次之後,就無法重新啟動動畫。 控制動畫也需要腳本具有 x:Name 指示詞,或可透過程式代碼中的參考存取。

交接行為可以指定為 BeginStoryboard的屬性。

使用 Compose HandoffBehavior

當您使用 ComposeHandoffBehaviorStoryboardAnimationTimelineAnimationClock 套用至屬性時,先前與該屬性相關聯的任何 Clock 對象都會繼續取用系統資源:計時系統不會自動移除時鐘。

若要避免當您使用 Compose套用大量時鐘時發生效能問題,您應該在時鐘完成之後,從動畫屬性中移除撰寫時鐘。 有數種方式可以移除時鐘:

這主要是物件上具有較長存留期之動畫的問題。 當物件被垃圾收集時,其時鐘也會中斷連線並垃圾收集。

如需時鐘物件的詳細資訊,請參閱 動畫和計時系統概觀

適用於

.NET Framework 4.8.1 及其他版本
產品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9