WPF - 带有加权文本的 StringFormat

WPF - StringFormat with weighted text

我有一个关于 WPF 的问题 stringformat

我想用 stringformat 将字符串绑定到 TextBlock,目前我有类似于以下内容的内容:

<TextBlock>
    <TextBlock.Text>
        <Binding StringFormat="{}Text: {0}" Path="text"/>
    </TextBlock.Text>
</TextBlock>

我想要做的是将字符串格式化为如下所示: 文字:文字

或者换句话说,我希望将结果字符串的第一部分加粗。在我对解决问题的研究中,我发现了一个类似的问题,StringFormat with Font Weight。但是,我对这种方法并不满意,而且大多数建议都与我的问题的这种解决方案相呼应。

我想知道这是否是唯一的方法。我对这个解决方案不是很满意,因为我觉得它使 XML 膨胀并且更难阅读。

当然我是 WPF 的新手,所以如果这是可接受的方式,我会这样做....我只是想知道这是否是解决这个简单问题的最佳方式。

我只有一个字要告诉你:Run

<TextBlock>
    <Run FontWeight="Bold"
         Text="Text: " />
    <Run Text="{Binding text}" />
</TextBlock>

我应该在回答之前完整地阅读问题;话又说回来,你不应该只 link 另一个页面而不添加其中的详细信息!

从我的头顶来看,只有 2 个解决方案具有一些标记格式,<Run><Span>

<Span><Bold><Italic><Underline> 有一些有用的简写形式,但这些不支持绑定。
<Run> 冗长,但支持绑定。

在您的情况下,'best' 解决方案类似于:

<TextBlock>
    <Bold>Text: </Bold><Run Text="{Binding text}"/>
</TextBlock>

对于旁注,Span 类似于 Run,但可以包含其他元素([​​=43=]、跨度、文本)。

更多详情,see also