WPF 提供強大的客製化階梯,由低到高、成本由小到大:
重要指標:是否需要新增 API 特性(屬性、事件、命令)?若是,才考慮自訂元素。但自訂元素不一定是 Control——許多彈性元素(Panel、Shape、Transform)繼承 FrameworkElement 即可。
FrameworkElement、Control、Panel、Decorator、ContentControl、ItemsControl 等,決定元素核心能力。ControlTemplate 之間的協定(屬性別名、佔位符、附屬屬性標記)。「WPF 的優勢在於不必頻繁寫自訂控制項。善用組合、內容模型、樣式、模板、動畫、整合繪圖,大多數需求都能在不寫新類別的情況下解決。」
只有當你需要「現有控制項都沒有的根本行為」,且無法透過組合達成時,自訂控制項才是正解。