我有一个 styles.xaml 文件,它合并了一堆颜色定义:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Colors.xaml" />
</ResourceDictionary.MergedDictionaries>
如果我从我的 styles.xaml 中引用这些颜色作为 a 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 样式中的所有 TextBlocks 都应该使用该颜色,但它不起作用。如果我将其更改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
to更改为DynamicResource
它可以工作