2010-07-20 74 views
0

我正在使用Silverlight 4,并试图从4月份的Silverlight 4工具包中集成其中一个主题。Silverlight 4:尝试绑定样式和资源时出现XamlParseException

我的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主题...

由于事先

迈克

回答

3

我不认为你需要的绑定源一部分。

我已经使用了以下

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

,而且运作良好。

+0

谢谢Justing - 完美的作品! – mkamioner 2010-07-20 20:31:36