28 votes

Comment changer la couleur d'arrière-plan d'un bloc de texte dans Silverlight?

Je veux un textblock qui a le texte en bleu sur un fond jaune. Je peux mettre le texte en bleu avec le "premier plan" de l'attribut. Mais "arrière-plan" ne fonctionne pas (ce serait trop facile, je suppose).

Alors, quelle est la meilleure façon de le faire, de l'envelopper dans un Rectangle ou de la Toile qui a une couleur d'arrière-plan?

Et, est-il quelque chose que nous devrions savoir sur Silverlight pour comprendre pourquoi ils n'ont pas inclure un attribut Background pour de nombreux éléments sur lesquels vous souhaitez souvent pour définir la couleur d'arrière-plan?

par exemple, cela donne le message d'erreur "La propriété n'a pas été trouvé dans type Textblock":

<TextBlock 
    Foreground="Blue" 
    Background="Yellow"
        Height="20" 
    HorizontalAlignment="Stretch" 
    Margin="0"
    Test="this is a test"/>

44voto

Sorskoot Points 5882

TextBlock est dérivé de FrameworkElement. Zone de texte est dérivé de Contrôle, qui est dérivé de FrameworkElement. La couleur d'arrière-plan de la propriété est placé dans le Contrôle.

Dans WPF le TextBlock a un arrière-plan de la Propriété de soi.

La meilleure façon d'ajouter une couleur derrière votre texte est de placer le texte à l'intérieur d'un conteneur, comme une Frontière ou d'une Grille. Quelque chose comme:

<Grid  Background="Yellow" >  
    <TextBlock Foreground="Blue"
               Height="20"
               HorizontalAlignment="Stretch"
               Margin="0" 
               Text="this is a test"/> 
</Grid>

10voto

user1540503 Points 31
<Border 
    Background="GreenYellow">
<TextBlock Text="sdfs" Height="60" Width="200" ></TextBlock>
</Border>

6voto

Steven Robbins Points 18791

Ce n'est pas dans Silverlight pour une raison quelconque, bien qu'il soit dans WPF. Entourez simplement une bordure (elle se redimensionnera automatiquement au contenu).

5voto

Braulio Points 876

Juste si quelqu'un trouve ce fil googler ou binging ...

Si vous avez besoin d'arrière-plan pour cela, utilisez le contrôle d'étiquette, il est dans la boîte à outils depuis la version 3, et je suppose que sur la version 4, il est déjà inclus dans le noyau.

Reportez-vous au contrôle d'étiquette dans Silverlight

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X