Comment changer la couleur d'arrière-plan d'un Textblock dans Silverlight?
Je veux un textblock qui a du texte bleu sur un fond jaune. Je peux définir le texte bleu avec l'attribut "premier plan". Mais "Background" ne fonctionne pas (ce serait trop facile je suppose).
Alors, quelle est la meilleure façon de le faire, enveloppez-le dans un Rectangle ou une toile qui a une couleur d'arrière-plan?
Et, y a-t-il quelque chose que nous devrions savoir sur Silverlight pour comprendre pourquoi ils n'incluaient pas d'attribut D'arrière-plan pour de nombreux éléments sur lesquels vous voudriez souvent définir le couleur d'arrière-plan?
Par exemple, cela donne l'erreur "L'arrière-plan de la propriété n'a pas été trouvé dans le type Textblock":
<TextBlock
Foreground="Blue"
Background="Yellow"
Height="20"
HorizontalAlignment="Stretch"
Margin="0"
Test="this is a test"/>
4 réponses
TextBlock est dérivée à partir de FrameworkElement. TextBox est dérivée à partir de Contrôle, qui est dérivé de FrameworkElement. La propriété Couleur D'arrière-plan est placée dans le contrôle.
Dans WPF, le TextBlock a une propriété Background qui lui est propre.
La meilleure façon d'ajouter une couleur derrière votre texte est de placer le texte dans un conteneur comme une bordure ou une grille. Quelque chose comme:
<Grid Background="Yellow" >
<TextBlock Foreground="Blue"
Height="20"
HorizontalAlignment="Stretch"
Margin="0"
Text="this is a test"/>
</Grid>
<Border Background="GreenYellow">
<TextBlock Text="sdfs" Height="60" Width="200" />
</Border>
Ce N'est pas dans Silverlight pour une raison quelconque, bien qu'il soit dans WPF. Il suffit d'envelopper une bordure autour de lui (il sera redimensionné au contenu automatiquement).
Juste si quelqu'un fonde ce fil googling 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.
Référez-vous au contrôle de L'Étiquette dans Silverlight