2011-07-11 31 views

答えて

2

パフォーマンスペナルティなしでランタイムに別の辞書を選択し、Visual Studioデザイナーで動作するカスタムリソース辞書実装を作成しました。

<Application.Resources> 
    <custom:ThemeResourceDictionary> 
    <custom:ThemeResourceDictionary.LightResources> 
     <ResourceDictionary Source="/ThemeManagement;component/Resources/Light.xaml" /> 
    </custom:ThemeResourceDictionary.LightResources> 
    <custom:ThemeResourceDictionary.DarkResources> 
     <ResourceDictionary Source="/ThemeManagement;component/Resources/Dark.xaml" /> 
    </custom:ThemeResourceDictionary.DarkResources> 
    </custom:ThemeResourceDictionary> 
</Application.Resources> 
Light.xamlDark.xamlは、同じ名前のリソースが含まれます

:あなたはこのようにそれを使用します。

コードを取得し、その詳細を読むことができますon my blog

+0

うわー、そのような詳細な応答に感謝します。これは非常に役に立ちました。 – user700645

3

この種のことは、テーマは(暗いまたは光)に設定されているかを決定することができるだろう。あなたはあなたのブラシのためにバインドできるプロパティにそれを構築したいかもしれません。

Visibility v = (Visibility)Resources["PhoneLightThemeVisibility"]; 
if (v == System.Windows.Visibility.Visible) 
{ 
    // set your brush to blue 
} 
else 
{ 
    // set your brush to grey 
} 

あなたにも考慮にこれを取る必要がある場合にも、PhoneAccentBrushで、ユーザーの選択したアクセントカラーを得ることができます。

+0

代替案としてアクセスするPhoneDarkThemeOpacityもあり、1または0を返します。ここではすべての内部WP7テーマ・リソースの完全なリストをチートシートとして見つけることができます:http://bit.ly/kzhoog: ) – Anheledir

関連する問題