我有一个styles.xaml文件,它合并了一堆颜色定义:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Colors.xaml" />
</ResourceDictionary.MergedDictionaries>
如果我将styles.xaml中的那些颜色作为StaticResource
引用,它们可以正常工作,所以这样可行:
<Style x:Key="Timestamp" TargetType="TextBlock">
<Setter Property="Foreground" Value="{StaticResource LightTextColorBrush}"/>
</Style>
但是,如果我尝试从包含嵌套样式的样式引用这些颜色,则它不起作用,并被忽略:
<Style TargetType="StackPanel" x:Key="FollowOnChatUserItemStyle">
<Setter Property="Background" Value="White"/>
<Style.Resources>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="{StaticResource LightTextColorBrush}"/>
</Style>
</Style.Resources>
</Style>
在这里,我说我的StackPanel样式中的所有TextBlock都应该使用该颜色,但它不起作用。如果我将Value="{StaticResource LightTextColorBrush}"
更改为可行的Orange
。
有什么想法吗?
更新
通过以下回复修正了它。
我已将我的资源添加到App.xaml而不是使用它们的Window.xaml,因此我的App.xaml包含:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
我已从我的window.xaml中移除了合并,并且我已从StaticResource
更改为DynamicResource
并且可以正常工作
答案 0 :(得分:1)
设置为DynamicResource而不是StaticResource,并将Styles.xaml合并到App.xaml。