我需要将GroupBox Header的第一部分设为粗体,将另一部分设为非粗体。这是我想要实现的目标:
学生(最多:32)
<GroupBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="4" Margin="40, 80, 40, 80">
<GroupBox.Header>
<Span FontWeight="Bold">Students</Span>
(Max: 32)
</GroupBox.Header>
<StackPanel>
...
这给了我错误:属性“Header”被设置了不止一次。
我知道它适用于TextBlocks,但我不能让GroupBox Headers成为现实:
<TextBlock>
<Span FontWeight="Bold">Students</Span>
<Span>(Max: 32)</Span>
</TextBlock>
感谢。
答案 0 :(得分:4)
GroupBox.Header
只能包含一件事,但有一点可以是你喜欢的任何东西。例如,它可以是具有部分粗体内容的TextBlock
:
<GroupBox.Header>
<TextBlock>
<Span FontWeight="Bold">Students</Span>
<Span>(Max: 32)</Span>
</TextBlock>
</GroupBox.Header>
在XAML中,许多控件都具有名为Content
或Header
的属性,这些属性的类型为Object
。你总是可以给string
,但你也可以使用你喜欢的任何模板化或格式化的内容。在Windows窗体中,您的菜单项标题或组合框标题必须是字符串,除非您有心情花时间使用所有者绘制代码。在XAML中,它们可以是XAML可以渲染的任何东西,到了荒谬的程度:
<GroupBox>
<GroupBox.Header>
<GroupBox Header="I Heard You Like GroupBox Headers">
LOL
</GroupBox>
</GroupBox.Header>
<GroupBox Header="Content Box">Content</GroupBox>
</GroupBox>
这就像一把无限递归的瑞士军刀,每把刀都是瑞士军刀,就像它的父母一样。
答案 1 :(得分:1)
<GroupBox.Header>
<TextBlock>
<Span FontWeight="Bold">Students</Span>
<Span>(Max: 32)</Span>
</TextBlock>
</GroupBox.Header>