这是我的TextBlock
s
<StackPanel Orientation="Horizontal" Margin="0,3,0,0">
<TextBlock Text="6 or more characters, at least one letter and a number, " FontFamily="Segoe UI" Foreground="#000000" FontSize="13"/>
<TextBlock Text="no symbols" FontFamily="Segoe UI" Foreground="#000000" FontSize="13"/>
</StackPanel>
这是输出(屏幕截图)
为什么TextBlock
修剪结尾空格?但是当我提供前导空格时,它工作正常。
答案 0 :(得分:18)
看起来xml:space="preserve"
应该执行操作(请参阅Preserving Whitespace in XAML),但这似乎并不适用于Windows应用商店应用(它在WPF)。
如果您使用不间断空格字符 
,它确实有效
<TextBlock Text="6 or more characters, at least one letter and a number,       " ....
我想你可以尝试在Text
属性上构建一个转换器来检查尾随空格并用非破坏空格替换 - 假设发生的截断并不太早发生。
答案 1 :(得分:9)
使用<Run />
中的<TextBlock />.
解决。
<StackPanel Orientation="Horizontal" Margin="0,3,0,0">
<TextBlock FontFamily="Segoe UI" Foreground="#000000" FontSize="13">
<Run Text="6 or more characters, at least one letter and a number, " />
<Run Text="no symbols" />
</TextBlock>
</StackPanel>
自动换行仍然有效
<StackPanel Orientation="Horizontal" Margin="0,3,0,0">
<TextBlock FontFamily="Segoe UI" Foreground="#000000" FontSize="13"
Width="200" TextWrapping="Wrap">
<Run Text="6 or more characters, at least one letter and a number, " />
<Run Text="no symbols" />
</TextBlock>
</StackPanel>
如果包装不是问题,我会很容易地使用Jim的解决方案(#160;)。
在您的脑海中,请考虑HTML如何处理和保留空间。这也是XAML处理和保留空间的方式。当然,您会认为在TextBlock中,它会更直接地处理,是吧?嗯,它就是这样。至少有一个解决方案。
答案 2 :(得分:3)
尝试使用xml:space="preserve"
:
<StackPanel Orientation="Horizontal" Margin="0,3,0,0">
<TextBlock xml:space="preserve" Text="6 or more characters, at least one letter and a number, " FontFamily="Segoe UI" Foreground="#000000" FontSize="13"/>
<TextBlock xml:space="preserve" Text="no symbols" FontFamily="Segoe UI" Foreground="#000000" FontSize="13"/>
</StackPanel>
答案 3 :(得分:1)
我找到了不同的解决方案!当您设置\u+A0
时IsTextSelectionEnabled
有效。
我不知道为什么会这样,而且这是一个完全的惊喜(我添加了该字段,因为我刚刚发现它同时也在处理我的'为什么我的文字会被Universal Apps修剪?'问题)。
同样U+205F
(中等数学空间)也与IsTextSelectionEnabled
一起使用。
答案 4 :(得分:0)
RichTextBlock似乎保留了前导和尾随空格(在WP 8.1 WinRT中):
<RichTextBlock>
<RichTextBlock.Blocks>
<Paragraph >
<Paragraph.Inlines>
<Run Text="trailing " /><Run Text="bbb" /><Run Text=" leading" />
</Paragraph.Inlines>
</Paragraph>
</RichTextBlock.Blocks>
</RichTextBlock>
但除了您指定的那些之外,它似乎还在运行之间添加了额外的空间。