0

我有一个 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 中删除了合并,并且我已经从StaticResourceto更改为DynamicResource它可以工作

4

1 回答 1

2

设置为 DynamicResource 而不是 StaticResource 并将 Styles.xaml 合并到 App.xaml。

于 2013-07-19T14:07:14.690 回答