WP 8 で ThemeManager を使用して、デフォルトのスタイルを変更しようとしています。色などのカスタマイズを含むリソース ファイルが 1 つあります。
私の ThemeResources.xml
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:System="clr-namespace:System;assembly=mscorlib">
<Color x:Key="TestColor">#FF2c5f8c</Color>
<SolidColorBrush x:Key="TestBrush" Color="{StaticResource TestColor}"/>
</ResourceDictionary>
今、私の App.xml im で、これをマージされた辞書として設定します:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Themes/ThemeResources.xaml"/>
</ResourceDictionary.MergedDictionaries>
<local:LocalizedStrings xmlns:local="clr-namespace:MyApp" x:Key="LocalizedStrings"/>
</ResourceDictionary>
</Application.Resources>
私の App.cs では、アプリ コンストラクターで themeManager を使用します。
public App()
{
// Global handler for uncaught exceptions.
UnhandledException += Application_UnhandledException;
// Standard XAML initialization
InitializeComponent();
// Phone-specific initialization
InitializePhoneApplication();
// Language display initialization
InitializeLanguage();
// Get the custom theme
var rd = App.Current.Resources.MergedDictionaries[0];
// Set custom Theme, fallback to dark
ThemeManager.SetCustomTheme(rd, Theme.Light);
...
最後に、MainPage.xml で、次のように ThemeResources.xml で定義されたこの TestBrush を使用します。
<TextBlock Text="Testing" Foreground="{StaticResource TestBrush}"/>
私にはすべてが正しいように見えますが、アプリを実行しようとすると、次の例外が発生します。
$exception {System.Windows.Markup.XamlParseException: 名前/キー TestBrush のリソースが見つかりません [行: 90 位置: 175]
Visual Studio デザイナでは、カラー コレクトが表示されます。
そこで何が問題になる可能性がありますか?
編集:はい、ThemeResources.xmlファイルのビルドアクションは「リソース」に設定されています。それでも同じ問題です。