Изменить цвет одной буквы в строке метки?
У меня есть проект в WPF 4 и VB.net - ... Мне нужно изменить цвет одной буквы в слове в метке (содержимое метки меняется совсем немного). Я действительно не уверен, что это возможно, но если это так, я был бы признателен за помощь в выяснении, как это сделать. Тай!
4 ответов
Label-это элемент управления содержимым, поэтому любой тип содержимого разрешен внутри метки.Вы можете легко сделать ваше требование чем-то вроде
<Label>
<StackPanel Orientation="Horizontal">
<TextBlock Foreground="Red" Text="T"/>
<TextBlock Text="ext"/>
</StackPanel>
</Label>
более чистым способом было бы использование flow-content-capabilites TextBlock:
<Label>
<TextBlock>
<Run Text="L" Foreground="Green"/>
<Run Text="orem Ipsum"/>
</TextBlock>
</Label>
Это ограничивает привязку немного, если это необходимо.
самый надежный способ я нашел до сих пор использует TextEffect
:
<Label>
<TextBlock Text="Search">
<TextBlock.TextEffects>
<TextEffect PositionStart="0" PositionCount="1" Foreground="Red"/>
</TextBlock.TextEffects>
</TextBlock>
</Label>
этот цвет " s " красный. Конечно, вы можете привязать любое из вовлеченных свойств, если они должны быть динамическими.
Я только что реализовал что - то подобное в нашем проекте, это будет статично, хотя-я не уверен, что это то, что вам нужно. Вы можете изменять содержимое метки так часто, как вам нужно, но в конце она всегда будет иметь красный*. Я добавил стиль к проекту, как это
<Style x:Key="RequiredFieldLabel"
TargetType="{x:Type Label}">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding}" />
<TextBlock Text="*"
Foreground="red" />
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
затем вы можете использовать этот стиль на ярлык в любом месте вашего проекта.
<Label Content="Enter Name:"
Style="{StaticResource RequiredFieldLabel}" />