XAML:如何将 GroupBox Header 的一部分设为粗体?

MrP*_*mer 4 wpf xaml styles header groupbox

我需要将 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>
        ...
Run Code Online (Sandbox Code Playgroud)

这给了我错误:不止一次设置了属性“Header”。

我知道它适用于 TextBlocks,但我不能让它发生在 GroupBox Headers 上:

        <TextBlock>
            <Span FontWeight="Bold">Students</Span>
            <Span>(Max: 32)</Span>
        </TextBlock>
Run Code Online (Sandbox Code Playgroud)

谢谢。

15e*_*153 7

GroupBox.Header只能包含一件事,但那一件事可以是你喜欢的任何东西。它可以是TextBlock部分粗体的内容,举一个方便的例子:

<GroupBox.Header>
    <TextBlock>
        <Span FontWeight="Bold">Students</Span>
        <Span>(Max: 32)</Span>
    </TextBlock>
</GroupBox.Header>
Run Code Online (Sandbox Code Playgroud)

在 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>
Run Code Online (Sandbox Code Playgroud)

它就像一把无限递归的瑞士军刀,每一把刀也是一把瑞士军刀,就像它的父母一样。

在此处输入图片说明