Silverlight 4:尝试使用样式和资源绑定时出现XamlParseException

时间:2010-07-20 20:10:53

标签: silverlight themes resources styles xamlparseexception

我正在使用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主题......

先谢谢,

麦克

1 个答案:

答案 0 :(得分:3)

我认为您不需要绑定源部分。

我使用了以下

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

在过去,它运作良好。