在StackLayout和Grid的幫助下,Xamarin.Forms可以很好地确定頁面上視覺元素的大小和位置。但是,有時候,應用程式需要(或友善)進行一些調整。您可能希望稍微偏移元素的位置,更改它們
大小,甚至旋轉它們。
使用Xamarin的特征可以實作位置,大小或方向的這種變化。稱為變換的形式。變換的概念起源于幾何。變換是将點映射到其他點的公式。例如,如果要在笛卡爾坐标系上移動幾何對象,可以将常量偏移因子添加到定義該對象的所有坐标。
這些數學,幾何變換在計算機圖形程式設計中起着至關重要的作用,它們有時被稱為矩陣變換,因為它們最容易使用矩陣代數進行數學表達。沒有變換,就沒有3D圖形。但是多年來,變換已經從圖形程式設計遷移到使用者界面程式設計。 Xamarin.Forms支援的所有平台都支援可應用于使用者界面元素(如文本,位圖和按鈕)的基本轉換。
Xamarin.Forms支援三種基本類型的轉換:
- Translation - 水準或垂直或兩者都移動元素。
- Scale - 更改元素的大小。
- Rotation- 圍繞點或軸旋轉元素。
Xamarin.Forms支援的縮放在所有方向上是均勻的,技術上稱為各向同性縮放。 您無法使用縮放來更改可視元素的縱橫比。 螢幕的二維表面和3D空間都支援旋轉。 Xamarin.Forms不支援偏移變換或廣義矩陣變換。
Xamarin.Forms支援VisualElement類的八個屬性的這些轉換。 這些屬性都是double類型:
- TranslationX
- TranslationY
- Scale
- Rotation
- RotationX
- RotationY
- AnchorX
- AnchorY
正如您将在下一章中看到的那樣,Xamarin.Forms還具有廣泛且可擴充的動畫系統,可以定位這些屬性。 但您也可以使用Device.StartTimer或Task.Delay自行執行變換動畫。 本章示範了一些動畫技術,可能會幫助您進入動畫架構,為第22章做準備。