CompositionObject.StartAnimation 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
| StartAnimation(String, CompositionAnimation) |
使用 对象的指定属性连接动画并启动动画。 |
| StartAnimation(String, CompositionAnimation, AnimationController) |
使用 对象的指定属性连接动画并启动动画。 |
StartAnimation(String, CompositionAnimation)
使用 对象的指定属性连接动画并启动动画。
public:
virtual void StartAnimation(Platform::String ^ propertyName, CompositionAnimation ^ animation) = StartAnimation;
void StartAnimation(winrt::hstring const& propertyName, CompositionAnimation const& animation);
public void StartAnimation(string propertyName, CompositionAnimation animation);
function startAnimation(propertyName, animation)
Public Sub StartAnimation (propertyName As String, animation As CompositionAnimation)
参数
- propertyName
-
String
Platform::String
winrt::hstring
要与之关联的动画的属性。
- animation
- CompositionAnimation
要与指定属性关联的动画。
Windows 要求
| 设备系列 |
Windows 10 (在 10.0.10586.0 中引入)
|
| API contract |
Windows.Foundation.UniversalApiContract (在 v2.0 中引入)
|
示例
void AnimatingVisualOffset(Visual targetVisual)
{
var animation = _compositor.CreateVector3KeyFrameAnimation();
//
// Define specific easing functions.
//
var linear = _compositor.CreateLinearEasingFunction();
var easeIn = _compositor.CreateCubicBezierEasingFunction(
new Vector2(0.5f, 0.0f), new Vector2(1.0f, 1.0f));
var easeOut = _compositor.CreateCubicBezierEasingFunction(
new Vector2(0.0f, 0.0f), new Vector2(0.5f, 1.0f));
//
// Add a set of key frames to describe how the Offset should change over time.
//
animation.InsertKeyFrame(0.00f, new Vector3(100.0f, 100.0f, 0.0f));
animation.InsertKeyFrame(0.25f, new Vector3(300.0f, 100.0f, 0.0f), easeIn);
animation.InsertKeyFrame(0.50f, new Vector3(300.0f, 300.0f, 0.0f), linear);
animation.InsertKeyFrame(0.75f, new Vector3(100.0f, 300.0f, 0.0f), linear);
animation.InsertKeyFrame(1.00f, new Vector3(100.0f, 100.0f, 0.0f), easeOut);
//
// The animation curve defined by the key frames will scale to match the duration.
//
animation.Duration = TimeSpan.FromMilliseconds(4000);
targetVisual.StartAnimation("Offset", animation);
}
注解
如果在调用 StartAnimation 时,动画已绑定到对象的属性,则先前应用的动画将断开连接,并分配新动画。 同样,直接设置 属性将导致上一个动画断开连接,并且新的属性值将生效。
下表显示了可动画属性的列表:
| Object | 属性名称 | 属性类型 |
|---|---|---|
| 视觉对象 | AnchorPoint | Vector2 |
| CenterPoint | Vector3 | |
| Offset | Vector3 | |
| 不透明度 | Scalar | |
| 方向 | Vector4 | |
| RotationAngle | Scalar | |
| RotationAxis | Vector3 | |
| 大小 | Vector2 | |
| TransformMatrix | Matrix4x4 | |
| InsetClip | BottomInset | Scalar |
| LeftInset | Scalar | |
| RightInset | Scalar | |
| TopInset | Scalar | |
| CompositionColorBrush | 颜色 | Windows.UI.Color |
| CompositionPropertySet | 开发人员指定的属性集。 |
此外, CompositionEffectBrush 对象下某些效果的属性可以进行动画处理:
| 效果名称 | 属性名称 | 属性类型 |
|---|---|---|
| 饱和度Effect | 饱和度 | Scalar |
| ColorSourceEffect | Color | Vector4 |
| ArithmeticComposite | Offset | Scalar |
| Source1Amount | Scalar | |
| Source2Amount | Scalar | |
| MultiplyAmount | Scalar | |
| Transform2D | TransformMatrix | Matrix3x2 |
| ContrastEffect | 与此示例 | Float |
| ExposureEffect | 曝光 | Float |
| HueRotationEffect | 角度 | Float |
| SepiaEffect | 强度 | Float |
| TemperatureAndTintEffect | 温度 | Float |
| 色调 | Float | |
| GammaTransferEffect | RedAmplitude | Float |
| RedExponent | Float | |
| RedOffset | Float | |
| GreenAmplitude | Float | |
| GreenExponent | Float | |
| GreenOffset | Float | |
| BlueAmplitude | Float | |
| BlueExponent | Float | |
| BlueOffset | Float | |
| AlphaAmplitude | Float | |
| AlphaExponent | Float | |
| AlphaOffset | Float |
适用于
StartAnimation(String, CompositionAnimation, AnimationController)
使用 对象的指定属性连接动画并启动动画。
public:
virtual void StartAnimation(Platform::String ^ propertyName, CompositionAnimation ^ animation, AnimationController ^ animationController) = StartAnimation;
/// [Windows.Foundation.Metadata.Overload("StartAnimationWithController")]
void StartAnimation(winrt::hstring const& propertyName, CompositionAnimation const& animation, AnimationController const& animationController);
[Windows.Foundation.Metadata.Overload("StartAnimationWithController")]
public void StartAnimation(string propertyName, CompositionAnimation animation, AnimationController animationController);
function startAnimation(propertyName, animation, animationController)
Public Sub StartAnimation (propertyName As String, animation As CompositionAnimation, animationController As AnimationController)
参数
- propertyName
-
String
Platform::String
winrt::hstring
要与之关联的动画的属性。
- animation
- CompositionAnimation
要与指定属性关联的动画。
- animationController
- AnimationController
要与动画关联的动画控制器。
- 属性
Windows 要求
| 设备系列 |
Windows 11 Insider Preview (在 10.0.23504.0 中引入)
|
| API contract |
Windows.Foundation.UniversalApiContract (在 v15.0 中引入)
|
注解
参数 animationController 允许将多个动画绑定到单个控制器的 Progress 属性,这比将多个动画器 Progress 的属性绑定到 CompositionObject 属性所需的 ExpressionAnimation 对象更少。