ScaleAnimation 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供方法,可讓您擷取調整 (增加或縮小) 動畫的參數。
public ref class ScaleAnimation sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.UI.Core.AnimationMetrics.AnimationMetricsContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class ScaleAnimation final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.UI.Core.AnimationMetrics.AnimationMetricsContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class ScaleAnimation
Public NotInheritable Class ScaleAnimation
- 繼承
- 屬性
- 實作
Windows 需求
裝置系列 |
Windows Desktop Extension SDK (已於 10.0.10240.0 引進)
|
API contract |
Windows.UI.Core.AnimationMetrics.AnimationMetricsContract (已於 v1.0 引進)
|
範例
若要取得 ScaleAnimation 類別的實例,請先取得動畫描述中的動畫集合,然後逐步解說該動畫陣列,以尋找任何屬於類型小數位數的動畫。 下列範例顯示此程式。 假設先前已指派 效果 和 目標 參數。
using Windows.UI.Core.AnimationMetrics;
AnimationDescription animationDescription = new AnimationDescription(effect, target);
foreach (var animation in animationDescription.Animations)
{
switch (animation.Type)
{
case PropertyAnimationType.Scale:
{
ScaleAnimation scale = animation as ScaleAnimation;
// Retrieve scale animation metrics.
}
break;
case PropertyAnimationType.Translation:
{
TranslationAnimation scale = animation as TranslationAnimation;
// Retrieve translation animation metrics.
}
break;
case PropertyAnimationType.Opacity:
{
OpacityAnimation opacity = animation as OpacityAnimation;
// Retrieve opacity animation metrics.
}
break;
}
}
備註
小數位數是套用至 x- 或 y 方向物件的因素。 小數位數 1.0 代表無縮放比例、小於 1 代表縮小,而大於 1 代表放大。
尺規的原點代表應該進行縮放的中心點。 此點在整個動畫中維持固定狀態;它不會產生動畫效果。 原點會以物件大小的分數表示。 例如, NormalizedOrigin。0.25 的 X 代表從左邊緣到物件右邊緣的 25% 點。 如果物件寬度為 100 圖元,則 為 NormalizedOrigin。X 代表物件左邊緣的點 25 圖元。
注意
從右至左 (RTL) 系統上,會翻轉左右的感知。
例如,請考慮座標矩形 (100、150、200、300) 的物件,以 (左、上、右、右、底) 格式表示。 假設插入的 x 小數位數為 0.4、插入的 y 小數位數為 2.0、x 原點為 0.25,而 y 原點為 0.80。
首先,將正規化原點值轉換成圖元。 物件的寬度為 100 圖元,而 x 原點會指定為 0.25,這會導致物件左邊的 x 原點為 25 圖元。 由於物件的左座標為 100,因此原點的 X 座標為 125。
同樣地,物件的高度為 150 圖元,而 y 原點為 0.80,這會導致物件頂端的 y 原點為 120 圖元。 由於物件的頂端座標為 150,因此原點的 Y 座標為 245。
為了套用縮放轉換,我們會先將物件轉譯為原點的負值,並將它移至 (-25, -95, 75, 55) 。 接下來,我們會將左座標和右座標乘以 x 刻度,並將上角和下角座標乘以 y 刻度,這會導致 (-10、-190、30、110) 。 最後,我們會依原點轉譯物件,這會導致 (115、55、155、300) 。
InitialScaleX和InitialScaleY屬性保證同時設定或兩者皆未設定。 如果未設定它們,則目前的物件小數位數應該用來做為動畫的初始值。
計時控制 控制項 Control1 和 Control2 指定三次貝茲曲線的第一和第二個控制點位置。 這兩個點的意義與 CSS 轉換計時函式 屬性中的意義相同。 控制點零一律 (0,0) ,而控制點三則一律 (1,1) 。 Control1和Control2的座標一律位於範圍 0 到 1,內含。
在產生的 Bézier 曲線上,x 座標代表時間,而 Y 座標代表進度。 從 (0,0) 到 (1,1) 的原始曲線會調整為符合動畫轉換的實際持續時間和範圍,因此 x=0 是轉換的開始時間,x=1 是結束時間,y=0 是動畫屬性的初始值,y=1 是最終值。 x 和 y 的值介於 0 到 1 之間,代表時間與動畫的對應中繼值。
屬性
Control1 |
取得三次方貝茲曲線的第一個控制點位置,該曲線描述刻度如何隨著時間產生動畫效果。 |
Control2 |
取得三次方貝茲曲線的第二個控制點位置,該曲線描述刻度在一段時間內應該如何產生動畫效果。 |
Delay |
取得刻度動畫開始和該動畫實際開始繪製之間的時間量。 |
Duration |
取得應該執行縮放動畫的時間量。 這不包括延遲。 |
FinalScaleX |
取得 物件的最終水準縮放比例。 |
FinalScaleY |
取得 物件的最終垂直縮放比例。 |
InitialScaleX |
取得 物件的初始水準縮放比例。 |
InitialScaleY |
取得 物件的初始垂直縮放比例。 |
NormalizedOrigin |
取得縮放動畫的中心點,以相對於物件一般大小的點表示。 |
Type |
取得這個 物件表示的動畫類型。 |