如何在Windows Phone 8 XAML中更改段落边距?

时间:2013-09-01 15:48:52

标签: xaml windows-phone-8 windows-phone

里面有一个带有Paragraph的RichTextBox。 如何改变内段的边距?没有这样的财产。 将RichTextBox.Padding设置为“-12,0”会有所帮助,但看起来像是一个丑陋的黑客。

4 个答案:

答案 0 :(得分:2)

默认情况下,RichTextBox的根边界元素将具有边距(12,0,12,0),因此默认情况下会添加左侧和右侧的空间。如果要更改行为,则必须自定义RichTextBox模板。

您可以使用此模板,避免在左右添加额外的边距。

<ControlTemplate TargetType="RichTextBox">
    <Grid Background="Transparent">
        <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
            <ContentControl x:Name="ContentElement" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
        </Border>
    </Grid>
</ControlTemplate>

此致 Mawy

答案 1 :(得分:1)

这个选项怎么样:锁也难看,但仍然:

<StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <RichTextBox>
                <Paragraph>
                    <InlineUIContainer>
                        <TextBlock x:Name="tbMargin" Margin="100,0,0,0"></TextBlock>
                    </InlineUIContainer>
                    Hi from Paragraph
                </Paragraph>               
            </RichTextBox>           
        </StackPanel>

答案 2 :(得分:1)

另一个黑客:(至少留下保证金:)

<Paragraph xml:space="preserve">
    Hi from Paragraph
    Hi from Paragraph 2
</Paragraph>

答案 3 :(得分:1)

您只需要设置段落的属性TextIndent。我会告诉你一个样本:

    <RichTextBox>
        <FlowDocument>
            <Paragraph TextIndent="6"><Run Text="Paragraph 1"/></Paragraph>
            <Paragraph TextIndent="12"><Run Text="Paragraph 2"/></Paragraph>
            <Paragraph TextIndent="18"><Run Text="Paragraph 3"/></Paragraph>
            <Paragraph TextIndent="24"><Run Text="Paragraph 4"/></Paragraph>
        </FlowDocument>
    </RichTextBox>

这将导致:
TextIndent of Paragraph