如何在RichTextBox中调整Border的垂直位置

时间:2016-08-14 00:20:31

标签: wpf visual-studio xaml windows-phone richtextbox

在向RichTextBox添加内容后,我注意到黑色边框的垂直对齐有点不合适。要向下移动边框的位置需要做什么才能使文本与其他单词水平内联?

XAML

<RichTextBox x:Name="seasons_richtextBlock" HorizontalAlignment="Left">
    <Paragraph>
        <InlineUIContainer>
            <Border Background="Black">
                <TextBlock Text=" Spring " Foreground="White" TextAlignment="Center" VerticalAlignment="Center"/>
            </Border>
        </InlineUIContainer>
        <Run Text=", Summer, Autumn and Winter (four seasons)"/>
    </Paragraph>
</RichTextBox>

enter image description here

1 个答案:

答案 0 :(得分:2)

了解正在使用的平台,语言和Windows Phone版本会很有帮助。

如果您使用的是Silverlight,C#和Windows Phone 8.1:

Example Image

似乎没有任何优雅,简单的解决方案。要使文本排成一行,您必须创建多个包含更多边框和文本块的InlineUIContainer。

这似乎不是维持大量文本的可行方式。除了InlineUIContainers之外,也不会有自动换行。

但如果您只需要一小段文本,那么这应该可行。

以下是一个例子:

        <RichTextBox Background="Teal" Padding="10">
            <Paragraph>
                <InlineUIContainer>
                    <Border Background="Black">
                        <TextBlock Text="Spring"/>
                    </Border>
                </InlineUIContainer>
                <InlineUIContainer>
                    <Border>
                        <TextBlock Text=", "/>
                    </Border>
                </InlineUIContainer>
                <InlineUIContainer>
                    <Border Background="Black">
                        <TextBlock Text="Summer, Autumn"/>
                    </Border>
                </InlineUIContainer>
                <InlineUIContainer>
                    <Border>
                        <TextBlock Text=" and "/>
                    </Border>
                </InlineUIContainer>
                <InlineUIContainer>
                    <Border Background="Black">
                        <TextBlock Text="Winter"/>
                    </Border>
                </InlineUIContainer>
                <InlineUIContainer>
                    <Border>
                        <TextBlock Text=" (four seaasons)"/>
                    </Border>
                </InlineUIContainer>
            </Paragraph>
        </RichTextBox>