Silverlight 4: XamlParseException при попытке связать со стилями и ресурсами - PullRequest
0 голосов
/ 21 июля 2010

Я использую Silverlight 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 ...

Заранее спасибо,

Mike

1 Ответ

3 голосов
/ 21 июля 2010

Я не верю, что вам нужна деталь Binding Source .

В прошлом я использовал

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

, и она хорошо работает.

...