我有多个 TextBlock,其文本是通过 DynamicResource 插入的。它们都设置为 TextWrapping="Wrap"。但是在那些文本字符串中,我有不允许拆分的单词。这些词必须作为一个完整的词保存。
对于 Xaml 中的硬编码文本,通过 Textblock 中的 TextBlock 很容易解决:
<TextBlock TextWrapping="Wrap">
Example text with wrap and <TextBlock TextWrapping="NoWrap" Text=" example text without wrap"/
</TextBlock>
但是当通过 DynamicResource 插入文本时,此解决方案不起作用,因为文本未被解析。
我如何将 nowrap 和 wrap 合并到 DynamicResource Text 中而不将它一个接一个地拆分成多个 TextBlocks?
PS:我现在创建了一个示例来演示我想要的行为(绿色)和失败的尝试(红色、橙色、深红色) 的解决方法:
<StackPanel HorizontalAlignment="Center" Width="80" Orientation="Vertical">
<TextBlock TextWrapping="Wrap" Foreground="green">
bla1 bla2 bla3 bla4 <TextBlock TextWrapping="NoWrap" Text="Together(en)"/> bla5 bla6 longWordWhichShouldBreak
</TextBlock>
<TextBlock TextWrapping="Wrap" Foreground="red">
bla1 bla2 bla3 bla4 Together(en) bla5 bla6 longWordWhichShouldBreak
</TextBlock>
<TextBlock TextWrapping="Wrap" Foreground="orange">
bla1 bla2 bla3 bla4 Together(en) bla5 bla6 longWordWhichShouldBreak
</TextBlock>
<TextBlock TextWrapping="WrapWithOverflow" Foreground="DarkRed">
bla1 bla2 bla3 bla4 Together(en) bla5 bla6 longWordWhichShouldBreak
</TextBlock>
</StackPanel>
最佳答案
使用NO-BREAK SPACE在您的动态文本中。例如:
<TextBlock TextWrapping="Wrap">
Example text with wrap and example text without wrap
</TextBlock>
您可以在需要此行为的那些部分用此字符替换空格:
Replace(" ", System.Convert.ToChar(160))
关于c# - TextBlock TextWrapping Wrap 和 NoWrap 相结合,通过 DynamicResource 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42485689/