Несколько цветов в TextBlock - PullRequest
       65

Несколько цветов в TextBlock

7 голосов
/ 03 декабря 2011

Можно ли добавить динамические цвета в TextBlock .. у меня есть один символ в одном цвете, а другой - в другом цвете.

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

В основном я ввожу последовательность из 4 динамических символов из no.Я связал его с этим TextBlock внутри ListBox.Возможно ли иметь символы разных цветов.

Если да, то возможно ли динамическое добавление этих цветов, например.Если я нажимаю кнопку, определенные символы меняют цвет?

Спасибо.Любая помощь приветствуется.

Ответы [ 4 ]

26 голосов
/ 07 августа 2012

На самом деле, вы можете, что может пригодиться, когда вы делаете StringFormat для текстового блока с привязкой к данным или ряда других мест.

Если вы все же хотите попробовать, как здесьПример SL для метки формы, которая ставит красную звездочку рядом с текстом Обязательные поля, но затем также может добавить к ней больше материала, как показано в примере.Должно работать на Silverlight, WPF, UWP и т. Д. *

<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 голосов
/ 06 декабря 2018

для динамического задания цвета переднего плана для текстового блока

использование: txtblockname.Foreground = new SolidColorBrush (Colors.Yellow);

0 голосов
/ 10 февраля 2012

Я разрабатываю для Mango с WP7 SDK.Вы можете использовать .В WP7 он выглядит немного некорректно, вам нужно добавить пробелы в свойстве Run.Text, чтобы получить правильный интервал:

<TextBlock>Hello<Run Foreground="Bisque" Text=" Holla "></Run>and hello again!</TextBlock>;
0 голосов
/ 05 декабря 2011

TextBlock не поддерживает несколько цветов переднего плана.

Вы можете воссоздать это поведение, используя несколько текстовых блоков (по одному для каждой буквы) и помещая их в оболочку.Затем вы можете изменить цвет отдельных символов / букв по своему усмотрению.
Остерегайтесь возможного влияния на производительность, которое это может оказать.Поля вокруг отдельных букв должны быть скорректированы, чтобы воссоздать стандартное поведение.Будьте особенно осторожны в пунктуации.

...