2012-04-24 27 views
3

並且這樣做是否是最佳做法?我可以更改/「重新綁定」默認的WinRT系統畫筆/調色板顏色以匹配我的應用程序嗎?

因此,例如,HyperlinkPointerOverBrush定義了深藍/綠色,這是我的應用程序在您的鼠標/「手指」懸停在鏈接上時繼承的默認筆刷顏色。但是,從深藍色/綠色的顏色分配可以很容易地更改爲其他內容嗎?

(下面說明系統的名單刷我的應用程序有參考) enter image description here

我試着在我的App.xaml設置HyperlinkPointerOverBrush到不同的東西:

<SolidColorBrush x:Key="HyperlinkPointerOverBrush" Color="#FF0A2562"/> 

我的Metro應用中,但沒有果;我的鏈接仍然保持默認的深藍色/綠色。

有關我如何處理這個問題的任何想法?以及定義您的應用程序的系統筆刷的最佳實踐。您希望在Windows 8 Metro風格的WinRT應用程序上使用「調色板」? (這是一口)

謝謝。

回答

3

winrt程序集中出現的控件具有使用這些程序集中的資源的樣式和模板。你可以做的一件簡單的事情就是在app.xaml中設置RequestedTheme =「Light」。要更改任意畫筆,您還需要在使用控件時通過顯式重寫它們來自行修改樣式/模板。

通過轉到「編輯模板」/「編輯副本...」,可以在設計視圖上下文菜單中提取默認模板。然後,您將使用主題資源修改提取的樣式。

由於Common/StandardStyles.xaml位於基本模板中,因此您可以在App.xaml/MergedDictionaries中合併使用預定義的一組資源或主題。可能的話,如果您定義了多個使用相同鍵的主題資源字典 - 您可以動態更改App.xaml中的合併字典以在運行時更改主題。

+0

好感謝菲利普。我會等待在接受你之前收到更多答案。 – GONeale 2012-04-26 00:19:40

4

您可以覆蓋所有的系統刷,只需將刷子使用相同的密鑰到您的資源:

<ResourceDictionary> 
    <SolidColorBrush x:Key="ListBoxItemSelectedBackgroundThemeBrush" Color="Green" /> 
</ResourceDictionary> 

所有系統刷的WinRT的名單可以在這裏找到: http://www.win8tutorial.net/styling/windows-8-1-theme-resources/

最棘手的是找到合適的筆刷來覆蓋,因爲它有超過一百個。

問候

基督教
http://www.wpftutorial.net

+0

感謝Christian,正如我曾嘗試覆蓋'HyperlinkPointerOverBrush'的例子,但它沒有奏效。將再試一次。謝謝 – GONeale 2013-02-22 04:18:38

+0

這對我來說很好。 – benb1n 2013-07-08 04:07:56

相關問題