Tengo una ventana WPF que se supone que carga dos imágenes vectoriales de archivos XAML. (Cada uno está en un archivo separado para facilitar la modificación en Expression Design.)Obtener un recurso de ResourceDictionary con una clave
Cuando incluyo los archivos XAML en un MergedDictionary
, funciona bien. Este es el código que utilizo:
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Images/LCCD logo.xaml" />
<ResourceDictionary Source="Images/LCCD bottom image.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
y
<Image Source="{Binding Source={StaticResource LCCDlogo}}" /> <!-- Simplified -->
<Image Source="{Binding Source={StaticResource LCCDbar}}" /> <!-- Simplified -->
Sin embargo, ahora necesita agregar más a los recursos de la ventana. El nuevo recurso pertenece a esta ventana, por lo que queremos que esté en el mismo archivo en lugar de un archivo incluido.
Al agregar el siguiente código entre <Window.Resources>
y <ResourceDictionary>
, me sale el siguiente error:
Código
<Style TargetType="{x:Type tab:FabTabItem}">
<Setter Property="Header" Value="{Binding Path=LabelText}"/>
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="0,0,4,0">
<TextBlock Text="{Binding}" TextTrimming="CharacterEllipsis"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
Advertencia
The designer does not support loading dictionaries that mix 'ResourceDictionary' items without a key and other items in the same collection. Please ensure that the 'Resources' property does not contain 'ResourceDictionary' items without a key, or that the 'ResourceDictionary' item is the only element in the collection.
Así que cambiar el <ResourceDictionary>
etiqueta a esto:
<ResourceDictionary x:Key="Images">
Sin embargo, ahora no sé cómo acceder a los recursos dentro de este Diccionario. ¿Cómo se obtienen los recursos desde dentro de un nombre ResourceDictionary
?
EDITAR
No importa. Esto compila pero no se ejecuta.
El error es:
''Resources' property has already been set on 'MainWindow'.
supongo que tendré que hacerlo de otra manera.
Parece que funciona, y es una respuesta mucho mejor que la mía. –
@MosheKatz Me alegra ayudar –