XAML:如何使用绑定将GroupBox标题的一部分加粗?

时间:2017-02-08 01:41:32

标签: wpf xaml header styles groupbox

很久以前我问了一个问题并得到了帮助。要求略有改变。

原始问题: XAML: How do I make part of a GroupBox Header bold?

最初的要求是将标题文本硬编码为:

学生(最多:32)

Ed给我的解决方案是:

<GroupBox.Header>
    <TextBlock>
        <Span FontWeight="Bold">Students</Span>
        <Span>(Max: 32)</Span>
    </TextBlock>
</GroupBox.Header>

现在我需要将这两个部分绑定到某些依赖项属性,这样标题将显示为以下其中一个:

  • 学生(最多:32名)
  • 学生(最多64位)
  • 员工(最多:32名)
  • 员工(最多64位)
  • 等...

我需要绑定到这两个Span部分,类似于:

<GroupBox.Header>
    <TextBlock>
        <Span FontWeight="Bold">{Binding ProfessionString}</Span>
        <Span>{Binding MaxString}</Span>
    </TextBlock>
</GroupBox.Header>

,但显然{Binding ProfessionString}和{Binding MaxString}将逐字显示。

有办法吗?

感谢。

2 个答案:

答案 0 :(得分:2)

您应该使用Run元素并将其Text属性绑定到源属性:

<GroupBox.Header>
    <TextBlock>
        <Run FontWeight="Bold" Text="{Binding ProfessionString, Mode=OneWay}" />
        <Run Text="{Binding MaxString, Mode=OneWay}" />
    </TextBlock>
</GroupBox.Header>

答案 1 :(得分:1)

两个TextBlocks怎么样:

<GroupBox.Header>
    <StackPanel Orientation="Horizontal">
        <TextBlock FontWeight="Bold" Text="{Binding ProfessionString}"/>
        <TextBlock Text="{Binding MaxString}"/>
    </StackPanel>
</GroupBox.Header>