2012-11-24 17 views
5

Ich bin ein Anfänger in C# Wpf und ich möchte ein Flussdiagramm mit wenigen paragra durch Programmierung erstellen. Das Problem ist, dass es einen großen Abstand zwischen den Paragrafen gibt und ich möchte es auf sein Minimum verkleinern.Wie der Abstand zwischen Absatz in einem Flow-Dokument durch Programmierung anpassen

fand ich eine Lösung, die durch eine XML-Anweisung, aber ich will es durch die Programmierung machen:

<FlowDocument> 
    <FlowDocument.Resources> 
    <!-- This style is used to set the margins for all paragraphs in the FlowDocument to 0. --> 
    <Style TargetType="{x:Type Paragraph}"> 
     <Setter Property="Margin" Value="0"/> 
    </Style> 
    </FlowDocument.Resources> 

    <Paragraph> 
    Spacing between paragraphs is caused by margins set on the paragraphs. Two adjacent margins 
    will "collapse" to the larger of the two margin widths, rather than doubling up. 
    </Paragraph> 

    <Paragraph> 
    To eliminate extra spacing between two paragraphs, just set the paragraph margins to 0. 
    </Paragraph> 
</FlowDocument> 

, wie ich es tun kann?.

Danke für Ihre Hilfe.

+0

Aber XAML programmiert. ??? – Jordan

Antwort

2

Versuchen Sie folgendes:

Style style = new Style(typeof(Paragraph)); 
style.Setters.Add(new Setter(Block.MarginProperty, new Thickness(0))); 
myFlowDocument.Resources.Add(typeof(Paragraph), style); 
+0

Vielen Dank, das war die Lösung. –

+0

@WalidA Bitte betrachten Sie es als Antwort, wenn es Ihr Problem gelöst hat. –

+1

Dies funktioniert nicht für mich noch Einstellen der Margin-Eigenschaft in Code (d. H. 'Absatz.Margin = neue Dicke (0)'). Nichts, was ich tue, scheint den Absatzabstand reduzieren zu wollen. – Jordan

1

Nein "Programmierung" erforderlich ist. Die PagePadding Eigenschaft auf FlowDocument arbeitete für mich:

<FlowDocument PagePadding="0"> 

MSDN definition for PagePadding:

Ruft einen Wert, der die Dicke der Polsterung Raum zwischen den Grenzen einer Seite und den Inhalt der Seite anzeigt.