傳統 Windows Forms 開發中,自訂控件繪圖需重寫 OnPaint 並操作 Graphics 物件。WPF 雖以 XAML 聲明式 UI 為主,但仍保留底層繪圖能力,核心在於 DrawingContext 類別與 UIElement.OnRender 方法。
DrawingGroup.Open() 或 DrawingVisual.RenderOpen() 取得。using System;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows;
using System.Globalization;
namespace CustomPaint
{
class MyCanvas : Canvas
{
protected override void OnRender(DrawingContext dc)
{
base.OnRender(dc);
dc.DrawRectangle(Brushes.LightBlue, new Pen(Brushes.Red, 1),
new Rect(new Point(10, 10), new Size(100, 50)));
dc.DrawText(new FormattedText("my canvas", CultureInfo.CurrentCulture,
FlowDirection.LeftToRight, new Typeface("Tahoma"), 20, Brushes.Green),
new Point(50, 25));
}
}
}
本文建立 WPF 自訂繪圖基礎概念,後續將深入幾何圖形、影像與文字等進階繪圖技術。