WPF 最大的特色在於「合成」——圖形元素(Shape)就是普通的 UI 樹節點,可自由混入任何容器、控件甚至文字內部。傳統技術(WinForms GDI+、Cocoa Quartz 2D)將繪圖 API 與控件模型分離,導致混合困難;WPF 則打破這種界限。

範例展示:StackPanel 中交替放置 TextBlock、Rectangle、Ellipse、Button;TextBlock 內內嵌 Ellipse;Button 內用 Canvas 繪製笑臉並配合文字。這種合成能力延伸至控件模板,徹底改變自定義外觀的方式。


傳統即時模式需在重繪事件中重新發送繪圖指令,更新局部極其麻煩。WPF 採用保留模式:將形狀作為物件加入 UI 樹,修改屬性(Width、Fill 等)即自動觸發重繪,WPF 負責處理疊加順序與髒區計算。

程式碼只需:((Ellipse)sender).Width += 10;。雖然物件模型佔用較多記憶體,對海量資料(如地圖)可改用輕量級的可視化層(Visual Layer),稍後章節介紹。
WPF 內建縮放與旋轉支援,不僅針對繪圖,整個 UI 樹皆可透過 LayoutTransform 縮放。預設單位為「裝置獨立像素」:1 DIP = 1/96 英吋。系統依螢幕 DPI 自動換算物理像素,確保實體尺寸一致。


圖 7-6 為向量縮放,邊緣銳利;圖 7-7 為點陣圖插值放大,產生鋸齒或模糊。WPF 利用 GPU 像素著色器實現高質量向量光柵化。
Ellipse、Rectangle、Path、Line、Polyline、Polygon 等。SolidColorBrush、LinearGradientBrush、RadialGradientBrush、ImageBrush、DrawingBrush、VisualBrush。

WPF 合成模型支援任意形狀元素疊加、局部透明、全邊緣抗鋸齒、合成前變換。底層建構於 Direct3D,利用 3D 顯示晶片的多邊形繪圖、像素著色器、顯存快取等能力加速 2D 渲染,大幅提升重繪效能。