设置 TextBlock 以保留开头和结尾的空白?

问题描述 投票:0回答:5

编辑:

下面的代码实际上按照我想要的方式工作 - 这个问题有点误导。请忽略它。


通常当我像这样设置

Text
TextBlock
属性时:

TextBlock tb = new TextBlock();
tb.Text = "     Hello World ";

不显示文本开头和结尾的空格。

TextBlock
显示的文字只是
Hello World
。如何设置
TextBlock
显示它们(即不删除空格)?我是否缺少一些财产?

c# .net wpf textblock
5个回答
58
投票

在这种情况下,您不需要使用

xml:space="preserve"

<TextBlock xml:space="preserve" Text="     Hello world!    " />

但是会显示空格

<TextBlock>    Hello world!    </TextBlock>

不会。


9
投票

回复:“我只是希望您不要使用它来对齐文本。还有许多其他更优雅的方法可以做到这一点。”

听起来您可能想使用 Padding 属性: http://msdn.microsoft.com/en-us/library/system.windows.controls.textblock.padding(VS.85).aspx

另请参阅各种对齐和边距属性。


6
投票

设置要在 XAML 中保留的 xml:space 属性,我假设您使用的是 WPF

<TextBlock xml:space="preserve" Text="     Hello world!    " />

编辑:有时在 XAML 中执行操作会更容易。我只是希望您不要使用它来对齐文本。还有许多其他更优雅的方法可以做到这一点。


3
投票

您不需要使用 Text= 属性。这也有效:

<TextBlock xml:space="preserve">Staff Contact Details        <Hyperlink>Click here</Hyperlink></TextBlock>

0
投票

另一个解决方案是使用“运行”,如下所示:

<TextBlock>
    <Run Text="    "/>
    Hello world!
</TextBlock>
© www.soinside.com 2019 - 2024. All rights reserved.