私は動的に a をロードして、次のようResourceDictionary
に追加してMergedDictionaries
います:
var mergedDictionaries = Resources.MergedDictionaries;
mergedDictionaries.Clear();
// Generic styles
ResourceDictionary vsStyles = new ResourceDictionary();
vsStyles.Source = new Uri("pack://application:,,,/AssemblyName;component/VSTheme/VSStyles.xaml");
mergedDictionaries.Add(vsStyles);
// Theme-dependent styles
ResourceDictionary bright = new ResourceDictionary();
bright.Source = new Uri("pack://application:,,,/AssemblyName;component/Images/Bright.xaml");
mergedDictionaries.Add(bright);
Bright.xaml は次のようになります。
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<BitmapImage UriSource="..\Images\Bright\folder-bright.png" x:Key="FolderItemImage" />
<BitmapImage UriSource="..\Images\Bright\class-bright.png" x:Key="ClassItemImage" />
(...)
</ResourceDictionary>
これらの画像は、UI に表示されるツリービュー項目で使用されています。
<Image x:Name="iIcon" Width="16" Height="16" Margin="0, 1, 3, 1" Source="{DynamicResource FolderItemImage}"/>
通常、これらは問題なく表示されますが、プログラムを実行すると (画像が正しく表示されているにもかかわらず)、多くの警告が表示されます。
System.Windows.ResourceDictionary Warning: 9 : Resource not found; ResourceKey='NativeImage'
System.Windows.ResourceDictionary Warning: 9 : Resource not found; ResourceKey='ClassItemImage'
System.Windows.ResourceDictionary Warning: 9 : Resource not found; ResourceKey='NativeImage'
System.Windows.ResourceDictionary Warning: 9 : Resource not found; ResourceKey='ClassItemImage'
なぜそうなのですか?