UWP ContentControl在其内容中未显示空格

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

我正在尝试像下面的代码片段一样在堆栈面板中添加内容控件

<StackPanel Orientation="Horizontal" >
        <ContentControl Content="Test 1"/>
        <ContentControl Content=" ### "/>
        <ContentControl Content="Test 2"/>
</StackPanel>

在上面的代码中,第二个内容控件中内容(“ ###”)之后的空间未显示在结果中。

请参阅下面的屏幕截图

“

上图中的注释,###后没有空格。

任何人都可以让我知道,这是ContentControl的问题还是问题?

我的确切情况是将此面板添加为ItemsControl的ItemsPanel。请参考下面的代码

<ItemsControl x:Name="itemsControl">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal" >
                        <TextBlock Text="Test 1"/>
                        <TextBlock>
                            <Run Text=" ### "/>
                        </TextBlock>
                        <TextBlock Text="Test 2"/>
                    </StackPanel>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
        </ItemsControl>

关于,肖比卡。

uwp whitespace behavior
1个回答
0
投票

XAML将折叠一些空格,这就是为什么不能显示尾随空格的原因。 document对此进行了详细说明。

对于您的代码,我建议您可以使用TextBlock代替ContentControl,我们需要使用Run中的TextBlock

<StackPanel Orientation="Horizontal">
    <TextBlock Text="Test 1"/>
    <TextBlock>
        <Run Text="&#160;###&#160;"/>
    </TextBlock>
    <TextBlock Text="Test 2"/>
</StackPanel>

[&#160;是XML的转义字符,表示空格。


更新

[请注意,&#160;是XML转义字符,请不要在C#代码中使用它。在后台代码中,使用

textBlock.Inlines.Add(new Run() { Text = " #"+(char)160 }); 

如果选择在代码后方创建ItemsControl项目,请修改ItemsPanelTemplateItemsControl

<ItemsControl x:Name="itemsControl">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel Orientation="Horizontal"/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

最诚挚的问候。

© www.soinside.com 2019 - 2024. All rights reserved.