16

这是我TextBlock的:

<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修剪结尾空格?但是,当有前导空格时,它可以正常工作。

4

5 回答 5

22

看起来xml:space="preserve" 应该可以解决问题(请参阅Preserving Whitespace in XAML),但这似乎在 Windows 应用商店应用程序中不起作用(它在 WPF 中起作用)。

如果您使用不间断的空格字符&#160;,它确实有效

 <TextBlock Text="6 or more characters, at least one letter and a number,&#160;&#160;&#160;&#160;&#160;&#160;&#160;"  ....

我想你可以尝试在Text属性上构建一个转换器来检查尾随空格并用不间断空格替换 - 假设正在发生的截断不会太早发生。

于 2013-01-15T14:35:28.370 回答
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 内部会更直接地处理它,对吧?嗯,就是这样。至少有一个解决方案。

于 2013-01-15T18:38:19.187 回答
4

尝试使用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>
于 2013-01-15T14:25:02.003 回答
1

我找到了不同的解决方案!当\u+A0您还设置IsTextSelectionEnabled.

我不知道为什么会这样,这完全是一个惊喜(我添加了该字段,因为我刚刚发现它同时还在处理我的“为什么我的文本在通用应用程序中被修剪? ”问题)。

此外U+205F(中等数学空间)也可以与IsTextSelectionEnabled.

于 2016-05-14T03:36:12.590 回答
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>

但是,除了您指定的那些之外,它似乎还在运行之间添加了一个额外的空间。

于 2014-06-25T23:59:41.803 回答