【问题标题】:Change Color of Single Letter in Label String?更改标签字符串中单个字母的颜色?
【发布时间】:2011-08-30 09:01:03
【问题描述】:

我在 WPF 4 和 VB.net 中有一个项目。我需要更改标签中单词中单个字母的颜色(标签的内容变化很大)。我真的不确定这是否可能,但如果是的话,我将不胜感激帮助弄清楚如何。泰!

【问题讨论】:

    标签: wpf vb.net colors label


    【解决方案1】:

    标签是一个内容控件,因此标签内允许包含任何类型的内容。您可以通过类似的方式轻松满足您的要求

    <Label>
        <StackPanel Orientation="Horizontal">
            <TextBlock Foreground="Red" Text="T"/>
            <TextBlock Text="ext"/>
        </StackPanel>
    </Label>
    

    【讨论】:

    • 我正在寻找类似的东西,我想知道这种技术是否可行并且可以绑定。例如,突出显示动态字符串中的所有大写字母,例如“ThisIsMyTextBlock”。使用这种方法可以实现吗?
    【解决方案2】:

    更简洁的方法是使用 TextBlock 的 flow-content-capabilites:

    <Label>
        <TextBlock>
            <Run Text="L" Foreground="Green"/>
            <Run Text="orem Ipsum"/>
        </TextBlock>
    </Label>
    

    如果需要的话,这会稍微限制绑定。

    【讨论】:

    • 如果您的文本需要换行,这是一个更好的解决方案
    【解决方案3】:

    目前我发现的最干净的方法是使用TextEffect

    <Label>
        <TextBlock Text="Search">
            <TextBlock.TextEffects>
                <TextEffect PositionStart="0" PositionCount="1" Foreground="Red"/>
            </TextBlock.TextEffects>
        </TextBlock>
    </Label>
    

    这会将“S”染成红色。如果需要动态,您当然可以绑定任何涉及的属性。

    【讨论】:

      【解决方案4】:

      我刚刚在我们的项目中实现了类似的东西,但这将是静态的 - 我不确定这是否是您需要的。您可以根据需要随时更改标签的内容,但最后总是会有一个红色的 *。我在项目中添加了这样的样式

      <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}" />
      

      【讨论】:

        猜你喜欢
        • 2014-03-31
        • 2016-02-14
        • 2014-08-08
        • 1970-01-01
        • 1970-01-01
        • 2017-02-01
        • 1970-01-01
        • 2014-11-26
        • 1970-01-01
        相关资源
        最近更新 更多