WPF-18:繪圖和動畫

來自《深入淺出WPF》(劉鐵猛)讀書筆記

軟件項目成功與否的三個要素:資源,成本,時間。

矢量圖(Vector Image):無論怎樣放大/縮小都不會出現鋸齒。

使用Blend可以直接繪製XAML圖像;Design可以像Photoshop或Fireworks那樣繪製圖形,再由設計者決定導出爲png或XAML格式。

WPF的基本圖形包括以下幾個(都是Shape類的派生類):

1)Line:可以設置筆觸(Stroke);

2)Rectangle:既有筆觸,又有填充(Fill);

3)Ellipse:筆觸+填充;

4)Polygon:多邊形,筆觸+填充;

5)Polyline:折線(不閉合),由多條首尾相接的直線段組成;

6)Path:路徑(閉合區域)

繪圖比一定要在Canvas中完成,可在任何一種佈局控件中完成,常用的繪圖容器:Canvas,Grid。

WPF的繪圖系統中包含非常豐富的Brush類型(抽象類),常用的由:

i)SolidColorBrush;

ii)LinearGradientBrush:線性漸變畫刷。色彩沿設定的直線方向,按設定的變化點進行漸變;

iii)RadialGradientBrush:徑向漸變畫刷;

iv)ImageBrush:使用圖片作爲填充內容;

v)DrawingBrush:使用矢量圖(Vector)和位圖(Bitmap)作爲填充內容;

vi)VisualBrush:形象填充。

Path的Data屬性是Geometry類,但Geometry類是個抽象類,所以不能使用在XAML中直接使用<Geometry>標籤。Geometry子類包括:LineGeometry,RectangleGeometry,EllipseGeometry,PathGeometry,StreamGeometry,CombineGeometry,GeometryGroup。

線段都是沒有起點(StartPoint),因爲起點就是前一個線段的終點,而第一個線段的起點則是PathFigure的StartPoint。

使用路徑標記語法繪圖時一般分爲三步:移動至起點-》繪圖-》閉合圖形。語法不區分大小寫。


濾鏡插件:UIElement類的Effect屬性,後者位於System.Windows.Media.Effects名稱空間中,它的派生類有:Blureffect,DropShadowEffect,ShaderEffect。

控制變形的屬性有兩個,分別是:

i)RenderTransform:呈現變形,定義在UiElement類中;

ii)LayoutTransform:佈局變形,定義在FrameworkElement類中。

Transform類的派生類實例均可用來爲這兩個屬性賦值。Transform抽象類的派生類有:

a)MatrixTransform:矩形變形;

b)RoateTransform:旋轉變形;

c)ScaleTransform:座標系變形;

d)SkewTransform:拉伸變形;

e)TranslateTransform:偏移變形;

f)TransformGroup:變形組。

呈現變形只改變元素“出現在哪裏”,所以不牽扯佈局的改變,只涉及窗體的重繪,速度快--可以考慮製作動畫。

佈局變形一般只用在靜態變形上,而不用於製作動畫。


動畫本質是在一個時間段內對象位置,角度,顏色,透明度等屬性值的連續變化。WPF中可以用來製作動畫的屬性必須是依賴屬性。

簡單線性動畫:僅有變化起點,變化終點,變化幅度,變化時間4個要素構成。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章