2013-09-01 6 views
11

Es gibt eine RichTextBox mit einem Absatz darin. Wie ändert man den Rand des inneren Absatzes? Es gibt keine solche Eigenschaft. Einstellung von RichTextBox.Padding zu "-12,0" hilft, aber sieht aus wie ein hässlicher Hack.Wie Absatzabsatz in Windows Phone 8 XAML ändern?

+1

* Es ist WP8 XAML, nicht Windows8 XAML * Dies ist das erste Mal, dass mir vor gebissen. Ich würde annehmen, dass es eine andere Methode dafür gibt. +1 für die Beule. – Will

Antwort

1

Wie zu dieser Option: auch hässlich sperren, aber immer noch:

<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> 
1

Ein weiterer Hack: (zumindest für Ränder links :)

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

Sie müssen nur Eigenschaft textindent von Absatz . Ich werde Ihnen ein Beispiel zeigen:

<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> 

Dieses dazu führen würde:
TextIndent of Paragraph

2

standardmäßig RichTextBox wird eine Marge haben (12,0,12,0) für seine Wurzel Randelement und Daher wird standardmäßig der Platz auf der linken und rechten Seite hinzugefügt. Wenn Sie das Verhalten ändern möchten, müssen Sie die RichTextBox-Vorlage selbst anpassen.

Sie können diese Vorlage verwenden und verhindern, dass der zusätzliche Rand links und rechts hinzugefügt wird.

<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> 

Grüße, Mawy