Xaml 向具有占位符的本地化字符串添加粗体格式

Xaml 向具有占位符的本地化字符串添加粗体格式,xaml,mvvm,localization,windows-store-apps,Xaml,Mvvm,Localization,Windows Store Apps,我有一个带有占位符的本地化字符串: Verb {0} 我在视图模型中使用此字符串将字符串返回到视图中,该字符串依次显示在TextBlock中。很简单。但是出现了一个新的要求,即“动词”部分(除占位符插入值以外的所有内容)应以粗体显示 使用带有占位符的字符串似乎是指示词序的典型且最简单的方法。那么,第一个问题是:为了添加粗体格式,我应该在哪里解析本地化字符串?解析操作需要知道原始占位符的位置。到目前为止,视图模型负责使用本地化字符串,方法是使用string.Format插入值并将结果返回给视图。

我有一个带有占位符的本地化字符串:

Verb {0}
我在视图模型中使用此字符串将字符串返回到视图中,该字符串依次显示在
TextBlock
中。很简单。但是出现了一个新的要求,即“动词”部分(除占位符插入值以外的所有内容)应以粗体显示

使用带有占位符的字符串似乎是指示词序的典型且最简单的方法。那么,第一个问题是:为了添加粗体格式,我应该在哪里解析本地化字符串?解析操作需要知道原始占位符的位置。到目前为止,视图模型负责使用本地化字符串,方法是使用
string.Format
插入值并将结果返回给视图。如果我将此职责保留在视图模型中(这可能是必要的),那么视图模型还需要返回富文本

RichTextBlock
是否支持绑定到富文本?即使它被支持,我以前也从未有过视图模型返回格式化文本。对于MVVM主义的追随者来说,这最初感觉是亵渎神灵的,但也许在进一步考虑后,我会觉得这是可以接受的


向具有占位符的本地化字符串添加粗体格式的最佳方法是什么?从视图模型返回富格文本是最好的方法吗?

如果可以分别翻译动词和占位符(通常不可能在每种语言中自动翻译,因为动词通常会根据占位符更改形式),然后,您可以利用
TextBlock
可以有多个
Run
s作为您的孩子这一事实。尝试将其添加为
文本块的
内容
(子项)
(\r\n)
。用换行符替换(\r\n)。@NateDiamond-动词和占位符的内容是分开翻译的,没有问题。我没有
动词
占位符
属性。即使我以某种方式创建了它们,在XAML中硬编码它们的显示顺序也不会起作用,因为语序因语言而异。检索文本后,您是否能够处理文本,并判断哪个部分是动词,哪个部分是占位符?如果是这样,那么我要做的就是创建一个模型来存储文本和一个
IsVerb
bool
,您的
ViewModel
将处理并创建它。然后,使用
ItemsControl
itemstemplate
fontwweight
绑定到
IsVerb
,并通过
转换器将其传递。查看。