WPF ResourceDictionary 主題資源替換(一)

當咱們須要在程序中替換主題,更換另外一套背景、顏色、樣式時,如何在不修改資源Key值,直接替換呢?windows

問題&疑問

 1. Key值衝突

同一ResourceDictionary中,不能夠使用相同Keyspa

2. 資源替換

添加倆套樣式,Xaml下是否能夠將原有的資源(如樣式)替換成新的資源?blog

加載順序是否會衝突,好比倆個字典中都存有Image.Search圖片資源,最終會以哪一個字典中的資源爲準呢圖片

 

ResourceDictionary的合併方案

WPF的ResourceDictionary合併時,合併的規則能解決此衝突及加載順序問題資源

ResourceDictionary合併:文檔

  1. 檢查ReourceDictionary全部資源Key列表
  2. 檢查ResourceDictionary.MergedDictionaries中的字典,從列表尾部遍歷到表頭。
  3. 按以上檢查順序,檢查到相同Key值時,會以檢查到的首個Key爲準。即添加字典時,最後一個字典下的資源。

詳細的官方文檔,截圖以下:get

因此,不一樣主題的資源,能夠經過MergedDictionaries添加不一樣的字典,以加載順序來覆蓋以前的主題資源。io

相關文章
相關標籤/搜索