WPF動畫類擴展知識一點通
一個開發經驗豐富的編程人員,應該是了解WPF的。它是一款專門用來處理圖形界面的開發輔助工具。對WPF動畫類的支持大部分收集在 System.Windows.Media.Animation 命名空間中。#t#
這是一個大型命名空間,其中定義了 164 個類專用于設置 22 種特定數據類型的動畫屬性。這 22 種數據類型包括基本數據類型(如 byte、int 和 double),也包括更特殊的類型(如 Matrix、Point3D 和 Quaternion)。
v資源毫無疑問是引人入勝的作品,但恐怕只有非編程人員才會認為這 22 種數據類型就足夠滿足各種應用程序。我個人經常開發希望對整個對象集合實現動畫效果的應用程序,尤其是坐標點的集合。現有的 API 為我們提供了類(如 PointAnimation 和 Point3DAnimation)來制作單獨的 2D 或 3D 坐標的動畫,但我希望 PointCollectionAnimation 和 Point3DCollectionAnimation 類通過在兩個集合的相應成員之間插入來制作整個坐標點集合的動畫。
通常,我們可能會責怪 Microsoft .NET Framework(尤其是 WPF)使得定義對象集合如此輕松,使用起來如此便利,就像使用對象本身一樣。WPF 已定義了 PointCollection 和 Point3DCollection 類,而且在 XAML 中,這些集合的使用方法非常簡單。在 XAML 中,分配 Point 類型的屬性和分配 PointCollection 類型的屬性之間的差別就像鍵入“100 50”和“100 50, 40 25, 35 80, 50 100”之間的差別一樣。因此,我想為什么使這些類型的屬性具有動畫效果不能像這般簡單呢?
假定 PointCollectionAnimation 類將會使 PointCollection 類型的屬性具有動畫效果。WPF 中內置的五個類具有該類型的屬性:Polyline、Polygon(兩者均源于 Shape)、PolyLineSegment、PolyBezierSegment 和 PolyQuadraticBezierSegment(源于 PathSegment)五個類的屬性均指定為 Points。通過使這些 Points 屬性具有動畫效果,您可以將圖形數字從一個形狀更改到另一個具有單個動畫的形狀。
據我所知,Point3DCollection 僅能在一個類中顯示,即位于 WPF 3D 圖形系統中心的 MeshGeometry3D 類。通過制作 Point3DCollection would 動畫,可以非常輕松地實現 3D 對象變形(通常被認為是相當高級的 3D 編程任務)。
正是在計算機屏幕上切換、變形和改變 2D 和 3D 圖的形狀的想象促使我在擴展WPF動畫類的道路上不斷前進。