CompositionCommitBatch 类

定义

一组活动动画或效果。

public ref class CompositionCommitBatch sealed : CompositionObject
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 131072)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class CompositionCommitBatch final : CompositionObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 131072)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class CompositionCommitBatch : CompositionObject
Public NotInheritable Class CompositionCommitBatch
Inherits CompositionObject
继承
Object Platform::Object IInspectable CompositionObject CompositionCommitBatch
属性

Windows 要求

设备系列
Windows 10 (在 10.0.10586.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v2.0 中引入)

示例

提交批处理

private void UsingCommitBatch()
{
  //Create Scoped batch for animations
  CompositionCommitBatch batch =  Compositor.GetCommitBatch(CompositionBatchTypes.Animation);

  //Setup completion event 
  batch.Completed += CommitBatchCompleted;

  //Setup animations
  Animation1(_target);
}

// Creates and defines the key frame animation 
private void Animation1(Visual targetVisual)
{
  var animation1 = _compositor.CreateVector3KeyFrameAnimation();

  animation1.InsertKeyFrame(0.0f, new Vector3(100.00f, 100.00f, 0.00f));
  animation1.InsertKeyFrame(0.5f, new Vector3(300.00f, 100.00f, 0.00f));
  animation1.InsertKeyFrame(1.0f, new Vector3(500.00f, 100.00f, 0.00f));

  animation1.Duration = TimeSpan.FromMilliseconds(2000);
  targetVisual.StartAnimation("Offset", animation1);
}

public void CommitBatchCompleted(object sender, CompositionBatchCompletedEventArgs args)
{
  _root.Children.Remove(_target);
}      

注解

表示一组活动动画或效果,并在组的所有成员完成时触发回调。 CompositionCommitBatch 是隐式创建的,但必须检索以声明已完成事件。 在每个提交周期结束时,将隐式关闭提交批处理。

对于动画批处理类型,当批处理中最长动画的组合延迟和持续时间已过时,将触发回调。 对于效果 批处理类型,当批处理中所有效果的处理完成时,将触发回调。

在提交周期期间,可以通过调用 Compositor.GetCommitBatch 来检索当前提交批处理。 提交周期定义为从合成器进行更新之间的时间。 汇报排队,直到系统准备好处理更改并将位绘制到屏幕。 提交批处理将聚合提交周期内的所有对象,即调用 GetCommitBatch 之前和之后的对象。   在合成线程(创建合成器所在的线程)上隐式创建 Commit 批处理。 每个线程只能有一个合成器,因此每个线程只能有一个 Commit 批处理。 必须检索提交批处理,以便声明已完成的事件。 提交批处理将在每个提交周期结束时隐式关闭,无法暂停或恢复,如果尝试,则会导致错误。

有关合成批处理的详细信息,请参阅合成 动画概述

属性

Comment

要与 CompositionObject 关联的字符串。

(继承自 CompositionObject)
Compositor

用于创建此 CompositionObjectCompositor

(继承自 CompositionObject)
Dispatcher

CompositionObject 的调度程序。

(继承自 CompositionObject)
DispatcherQueue

获取 CompostionObject 的 DispatcherQueue

(继承自 CompositionObject)
ImplicitAnimations

附加到此 对象的隐式动画的集合。

(继承自 CompositionObject)
IsActive

指示当前是否为要聚合的对象打开 CompositionCommitBatch

IsEnded

指示 CompositionCommitBatch 是否已关闭,并且无法再接受更改。

Properties

CompositionObject 关联的属性的集合。

(继承自 CompositionObject)

方法

Close()

关闭 CompositionObject 并释放系统资源。

(继承自 CompositionObject)
ConnectAnimation(String, CompositionAnimation)

连接和动画。

(继承自 CompositionObject)
DisconnectAnimation(String)

断开动画的连接。

(继承自 CompositionObject)
Dispose()

执行与释放或重置非托管资源关联的应用程序定义的任务。

(继承自 CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

定义可进行动画处理的属性。

(继承自 CompositionObject)
StartAnimation(String, CompositionAnimation)

将动画与 对象的指定属性连接,并启动动画。

(继承自 CompositionObject)
StartAnimation(String, CompositionAnimation, AnimationController)

将动画与 对象的指定属性连接,并启动动画。

(继承自 CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

启动动画组。

使用 CompositionObject 上的 StartAnimationGroup 方法可以启动 CompositionAnimationGroup。 组中的所有动画都将在 对象上同时启动。

(继承自 CompositionObject)
StopAnimation(String)

断开动画与指定属性的连接,并停止动画。

(继承自 CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

停止动画组。

(继承自 CompositionObject)
TryGetAnimationController(String)

返回指定属性上运行的动画的 AnimationController。

(继承自 CompositionObject)

事件

Completed

在 CompositionCommitBatch 中的所有对象完成时触发的事件。

适用于

另请参阅