2012-10-05 18 views
2

我正在開發一個應用程序,並希望將自己的風格應用到它。 XAML有一些稱爲主題目錄的東西,我試圖用於我的主題。事實證明,Windows有3個預定義的主題; Light,Dark和HighContrast。 當我在資源目錄上設置包含主題的x:Key屬性時,我想將其用於除3個預定義或默認值之一之外的其他主題,但它不起作用。有人知道爲什麼使自己的Windows 8應用程序主題

<ResourceDictionary.ThemeDictionary> 
    <ResourceDictionary x:key="Default"> // Does work 
     (...) 
    </ResourceDictionary> 
    <ResourceDictionary x:key="MyOwnThemeKey"> // Does not work 
     (...) 
    </ResourceDictionary> 
</ResourceDictionary.ThemeDictionary> 
+0

你能否確切地說你想要什麼。你的問題是:'我想改變主題'或'我如何給我的用戶改變主題的可能性' – Aymeric

+0

@America我已經把問題重新寫了一遍,如果你有時間的話請再讀一遍。 – ptf

回答

3

here

一個主題字典是合併字典的一個特殊類型的 旨在認爲,因當前一個 用戶在使用上哪個主題資源他或她的PC。例如,「light」 主題可能使用白色筆刷,而默認主題可能使用深色筆刷。畫筆會發生變化,但除此之外,僅通過引用主題資源,使用筆刷作爲資源的控件的組成也可以是 。

而且從here

一個或多個資源字典對象元素。每個這樣的 ResourceDictionary必須具有x:Key屬性。該 屬性的值必須是唯一的,並應引用已知的主題名稱。每個 資源字典及其內容應該旨在爲 提供其他資源另外消耗的已命名資源的主題值。例如,一個主題字典「高對比度」 可能包括部分或全部,以產生必要的對比度水平在其他的風格或轉換資源, 其他地方使用畫筆或顏色 鍵控資源的重新定義,以滿足 高對比度設計要求。

基本上,主題詞典旨在修改現有的主題,並根據當前的操作系統主題進行選擇。如果沒有該名稱的操作系統主題,則無法選擇它。

+0

當這種方式不起作用時,給用戶提供改變主題的可能性的最佳方式是什麼?基本上我正在尋找一種方式,用戶可以在應用程序設置中更改重音顏色。 –

+0

我想你可以定義新元素來覆蓋主題中定義的元素。我認爲這應該讓你足夠了解它:http://documentation.devexpress.com/#wpf/CustomDocument11220如果你想讓它成爲全球化的,那麼把它放到你的App.xaml中。 – mydogisbox

相關問題