Изменить цвет одной буквы в строке метки?
У меня есть проект в 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}" />