Question

J'utilise Silverlight 4 et j'essaie d'intégrer l'un des thèmes de la boîte à outils Silverlight 4 d'avril.

Mon app.xaml se lit comme suit:

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

lorsque ma fenêtre principale se lit

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

Cela fonctionne parfaitement.Cependant, je voudrais utiliser des ressources alors je suis allé de l'avant et j'ai fait ce qui suit

<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>

Ça échoue: - (

J'ai essayé de placer le style de ressource dans d'autres endroits comme l'app.xaml, etc.

Quelqu'un sache comment je peux utiliser des ressources afin que je n'ai pas à spécifier le premier plan pour chaque textblock?

PS - J'utilise le thème ExpressionDark ...

Merci d'avance,

Mike

Était-ce utile?

La solution

Je ne crois pas que vous ayez besoin de la source de liaison partie.

J'ai utilisé ce qui suit

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

dans le passé et ça fonctionne bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top