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 | |
不透明度 | 純量 | |
方向 | Vector4 | |
RotationAngle | 純量 | |
RotationAxis | Vector3 | |
大小 | Vector2 | |
TransformMatrix | Matrix4x4 | |
InsetClip | BottomInset | 純量 |
LeftInset | 純量 | |
RightInset | 純量 | |
TopInset | 純量 | |
CompositionColorBrush | Color | Windows.UI.Color |
CompositionPropertySet | 開發人員指定的屬性集。 |
此外, CompositionEffectBrush 物件下某些效果的屬性可以產生動畫效果:
效果名稱 | 屬性名稱 | 屬性類型 |
---|---|---|
SaturationEffect | 飽和度 | 純量 |
ColorSourceEffect | 色彩 | Vector4 |
算術Composite | Offset | 純量 |
Source1Amount | 純量 | |
Source2Amount | 純量 | |
MultiplyAmount | 純量 | |
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 屬性,這需要較少的 ExpressionAnimation 物件,而不是將多個動畫工具 Progress
的屬性系結至 CompositionObject 屬性。