9
votes

Plusieurs couleurs dans textBlock

Est-il possible d'ajouter des couleurs dynamiques à un ..i.e TextBlock. avoir un caractère dans une couleur et la suivante dans une autre couleur.

<TextBlock Text="{Binding no}" TextWrapping="Wrap" Margin="10,0,0,0" Style="{StaticResource PhoneTextSubtleStyle}" FontSize="40" Foreground="#A400C4FF" >
  // Can we add something here to specify what colours for what chars
</TextBlock>


0 commentaires

4 Réponses :


-2
votes

Le textblock ne prend pas en charge plusieurs couleurs de premier plan de premier plan.

Vous pouvez recréer ce comportement en utilisant plusieurs blocs de texte (un pour chaque lettre) et en les plaçant dans un wrappanel. Vous pouvez ensuite changer la couleur des caractères / lettres individuels que vous le souhaitez.
Méfiez-vous de l'impact probable des performances que cela pourrait avoir. Les marges autour des lettres individuelles devront être ajustées pour recréer le comportement standard. Soyez particulièrement prudent autour de la ponctuation.


1 commentaires

Donc, deux choses. 1. Oui, il fait avec IN XAML ou 2. Avec C # Créez une nouvelle instance d'exécution et utilisez la méthode .Ajouter de TextBlock.inlines pour ajouter cette instance. Je comprends que votre commentaire était à partir de 2011, mais peut-être le modifier ou le supprimer, il n'est donc pas trompeur 10 ans plus tard.



0
votes

Je me développe pour la mangue avec le SDK WP7. Vous pouvez utiliser un . Il semble un peu de buggy sur WP7, vous devez ajouter des espaces sur la propriété Run.Text pour obtenir l'espacement correct:

<TextBlock>Hello<Run Foreground="Bisque" Text=" Holla "></Run>and hello again!</TextBlock>;


1 commentaires

Comment puis-je définir le texte dans cette balise d'exécution de manière dynamique?



35
votes

En réalité, vous pouvez, qui peut être utile lorsque vous faites une StringFormat sur une textblock à liaison de données ou un certain nombre d'autres endroits.

Si vous vouliez essayer cependant, comme s'il est un exemple de SL pour Une étiquette de formulaire qui met un astérisque rouge à côté des champs de texte requis, mais peut également y ajouter plus de choses comme indiqué dans l'exemple. Devrait fonctionner pour Silverlight, WPF, UWP, etc ... P>

<TextBlock>
      <Run Text="*" Foreground="#FFE10101"/><Run Text="Required Line" />
      <Run Text="Red" Foreground="Red"/>
      <Run Text="Blue" Foreground="Blue"/>
      <Run Text="{Binding SomeString, StringFormat='Hell ya you can make \{0\} a different color!'}" Foreground="Orange"/>
</TextBlock>


0 commentaires

0
votes

Pour définir la couleur de premier plan de manière dynamique sur un textblock

Utilisation: TxtBlockName.foreground = nouveau SolidColorBrush (couleurs.Yellow);


0 commentaires