XAML: 如何使 GroupBox Header 的一部分加粗并绑定?
XAML: How do I make part of a GroupBox Header bold, with binding?
我很久以前就问过一个问题并得到了帮助。要求略有变化。
原问题:
最初的要求只是 hard-code 将 header 文本发送到:
学生(最多:32)
Ed 给我的解决方案是:
<GroupBox.Header>
<TextBlock>
<Span FontWeight="Bold">Students</Span>
<Span>(Max: 32)</Span>
</TextBlock>
</GroupBox.Header>
现在我需要将这两个部分绑定到一些依赖属性,这样 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} 将逐字显示。
有办法吗?
谢谢。
两个 TextBlock 怎么样:
<GroupBox.Header>
<StackPanel Orientation="Horizontal">
<TextBlock FontWeight="Bold" Text="{Binding ProfessionString}"/>
<TextBlock Text="{Binding MaxString}"/>
</StackPanel>
</GroupBox.Header>
您应该使用 Run
元素并将它们的文本属性绑定到您的源属性:
<GroupBox.Header>
<TextBlock>
<Run FontWeight="Bold" Text="{Binding ProfessionString, Mode=OneWay}" />
<Run Text="{Binding MaxString, Mode=OneWay}" />
</TextBlock>
</GroupBox.Header>
我很久以前就问过一个问题并得到了帮助。要求略有变化。
原问题:
最初的要求只是 hard-code 将 header 文本发送到:
学生(最多:32)
Ed 给我的解决方案是:
<GroupBox.Header>
<TextBlock>
<Span FontWeight="Bold">Students</Span>
<Span>(Max: 32)</Span>
</TextBlock>
</GroupBox.Header>
现在我需要将这两个部分绑定到一些依赖属性,这样 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} 将逐字显示。
有办法吗?
谢谢。
两个 TextBlock 怎么样:
<GroupBox.Header>
<StackPanel Orientation="Horizontal">
<TextBlock FontWeight="Bold" Text="{Binding ProfessionString}"/>
<TextBlock Text="{Binding MaxString}"/>
</StackPanel>
</GroupBox.Header>
您应该使用 Run
元素并将它们的文本属性绑定到您的源属性:
<GroupBox.Header>
<TextBlock>
<Run FontWeight="Bold" Text="{Binding ProfessionString, Mode=OneWay}" />
<Run Text="{Binding MaxString, Mode=OneWay}" />
</TextBlock>
</GroupBox.Header>