我正在尝试使用带有格式化文本的Label在视图中放置一些格式化文本(一个印记,以及它的价值)。文本格式按预期工作,但每当我尝试将空格字符添加到格式化文本中的span元素的末尾时,这些字符似乎被修剪。到目前为止,这适用于普通空间,非破坏空间和CR / NL。无论如何,当在一个字符串的中间,没有任何东西被删除。
这使得标签对我来说无法使用(至少对于这个用例),因为我无法正确格式化文本。有什么我错过了吗?我在网络和文档中没有找到任何关于此事的内容。这种方法是完全错误的,还是Xamarin中的一个错误? (就此而言,使用的版本是2.3.2.127)
答案 0 :(得分:1)
这使得标签对我来说无法使用(至少对于这个用例),因为我无法正确格式化文本
为什么要尝试使用尾随空格来实现此格式化并不完全清楚。
您是否尝试在标签周围使用边距或填充?
https://developer.xamarin.com/guides/xamarin-forms/user-interface/layouts/margin-and-padding/
使用空格字符表示元素间距通常不是一种好习惯。
答案 1 :(得分:0)
解决此问题的一个办法是在FormattedString中具有额外的跨度,每个跨度均为单个字母,其TextColor设置为背景。例如,假设您的背景色是白色,则将白色小写字母 l s放在跨度之间:
<Label>
<Label.FormattedText>
<FormattedString>
<FormattedString.Spans>
<Span>You have</Span>
<Span TextColor="White">l</Span>
<Span Text="{Binding Points}" d:Text="18"
TextColor="IndianRed"
FontAttributes="Bold"
FontSize="Large" />
<Span TextColor="White">l</Span>
<Span>points.</Span>
</FormattedString.Spans>
</FormattedString>
</Label.FormattedText>
</Label>
这显然是一个大错。但是,在Span获得margin或padding属性之前,这似乎是最简单的方法。