【问题标题】:XAML: How do I make part of a GroupBox Header bold, with binding?XAML:如何通过绑定使 GroupBox Header 的一部分变为粗体?
【发布时间】:2017-02-08 01:41:31
【问题描述】:

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

原问题: 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} 将逐字显示。

有没有办法做到这一点?

谢谢。

【问题讨论】:

  • 可以this
  • 一旦我理解了这两个答案,我意识到这个答案与 mm8 的答案相似。谢谢分享。

标签: wpf xaml header styles groupbox


【解决方案1】:

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

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

【讨论】:

  • 让它看起来很简单。非常感谢。
【解决方案2】:

两个TextBlocks怎么样:

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

【讨论】:

  • 谢谢。选择首选答案真的很难。这有助于我更好地可视化结构。
猜你喜欢
  • 1970-01-01
  • 2012-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-28
  • 2010-11-16
  • 2022-08-19
  • 1970-01-01
相关资源
最近更新 更多