核心類別 ResourceDictionary 類似 Hashtable,鍵值對存取。實際開發多使用 FrameworkElement.Resources 屬性或 XAML <Window.Resources> 定義。WPF 可能延遲建立資源(保持 BAML 形式),僅在首次存取時實例化,加速啟動。
FindResource 會沿著邏輯樹向上搜尋:元素 → 父元素 → … → 根元素 → Application.Resources → 系統資源。若直接存取 element.Resources[key] 僅查該元素字典。

系統資源由 SystemColors、SystemFonts、SystemParameters 暴露(400+ 項)。使用 FindResource(SystemColors.InfoBrushKey) 可讓應用程式層級資源覆寫系統設定;直接讀 SystemColors.InfoBrush 則繞過搜尋鏈。
StaticResource:編譯期/載入期解析一次,效能佳,適合不變資源。DynamicResource:執行期建立追蹤連結,資源變更自動更新 UI,適合系統色彩等可變資源。<Grid Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}">
<TextBlock Background="{StaticResource Foo}" />
動態引用系統資源鍵需配合 x:Static,否則會被視為字串鍵。
Ellipse、Canvas):同一實例只能出現在視覺樹一處,適合「抽離複雜標記」而非多處複用。GeometryDrawing、DrawingGroup):非視覺元素,可自由多處引用。搭配 DrawingBrush 實現圖形磚貼。GeometryDrawing 共用,適合大量相似圖形。FrameworkElement 的模板。

