0

我正在使用 Silverlight 4,并且正在尝试从 4 月开始集成 Silverlight 4 工具包中的主题之一。

我的 App.xaml 内容如下:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Themes/System.Windows.Controls.Theming.ExpressionDark.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

当我的主窗口显示

<Grid x:Name="LayoutRoot" Background="{Binding Source={StaticResource ThemeBackgroundBrush}}">
    <TextBlock Text="Test" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="{Binding Source={StaticResource ThemeForegroundBrush}}" />
</Grid>

它完美地工作。但是我想使用资源,所以我继续执行以下操作

<Grid x:Name="LayoutRoot" Background="{Binding Source={StaticResource ThemeBackgroundBrush}}">
    <Grid.Resources>
        <Style TargetType="TextBlock">
            <Setter Property="Foreground" Value="{Binding Source={StaticResource ThemeForegroundBrush}}" />
        </Style>
    </Grid.Resources>
    <TextBlock Text="Test" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>

它失败 :-(

我试图将资源样式放在其他地方,如 App.xaml 等。

任何人都知道我可以如何使用资源,所以我不必为每个 TextBlock 指定前景?

PS - 我正在使用 ExpressionDark 主题...

提前致谢,

麦克风

4

1 回答 1

3

我不相信您需要Binding Source部分。

我用过以下

<Setter Property="Foreground" Value="{StaticResource ThemeForegroundBrush}" />

在过去,它运作良好。

于 2010-07-20T20:22:31.580 回答