0

我有这个 WPF 窗口内容,里面有 FlowDocumentReader:

<Window x:Class="KopiranjeProekti.UpatstvoZaKoristenjeWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:KopiranjeProekti"
        mc:Ignorable="d"
        Title="Упатство за Користење" Height="450" Width="800" Closing="Window_Closing">
    <Grid>
        <FlowDocumentReader Grid.Row="1" BorderBrush="Navy" BorderThickness="2" Name="flowReader">
            <FlowDocument
                Name="flowDoc"
                TextAlignment="Justify" 
                IsOptimalParagraphEnabled="True"
                IsHyphenationEnabled="True"
                IsColumnWidthFlexible="True"
                Background="AliceBlue"
                ColumnWidth="300"
                ColumnGap="20">
                <Paragraph>
                    1. Ова е софтвер за копирање на постоечки проекти(папки) и целокупната нивна содржина.
                    На Виндоус 10 некои фајлови прават пречка за копирање, како на пример *.OCX(ActiveX компонента),
                    засебни *.EXE извршни фајлови. Затоа пожелно е фајловите кои се добиваат како извод на компајлирање
                    или се некакви засебни компоненти или извршни датотеки, да се чуваат надвор од папката која треба да 
                    се ископира со нејзината содржина. 
                </Paragraph>
                <Paragraph>
                        2. За да се користи апликаcијата потребно е на дискот C: да се створи папка која ќе се вика KopiranjeProekti
                    и во нејзе да се сними фајл Proekti.xml кој ќе има содржина налик на следнава:ж    
                </Paragraph>
                <Paragraph>
                    &lt;?xml version="1.0" encoding="utf-8" ?&gt;
                    &lt;proekti&gt;
  
                      &lt;sektorskiPateka&gt;sektorski disk pateka&lt;/sektorskiPateka&gt;
                      &lt;nasPateka&gt;Network Access Storage(NAS) disk&lt;/nasPateka&gt;
                      &lt;spodeluvanjePateka&gt;pateka za spodeluvanje so kolegi&lt;/spodeluvanjePateka&gt;
                      &lt;mcafeeServerPateka&gt;pateka na kompjuter kade se arhiviraat aplikaciite&lt;/mcafeeServerPateka&gt;
  
                      &lt;proekt&gt;
                        &lt;ime&gt;WpfExercise1&lt;/ime&gt;
                        &lt;pateka&gt;C:\Users\vlzak\Documents\c_sharp_vezhbi\WpfExercise1&lt;/pateka&gt;
                      &lt;/proekt&gt;
  
                    &lt;/proekti&gt;
                </Paragraph>
            </FlowDocument>
        </FlowDocumentReader>
    </Grid>
</Window>

如您所见,我试图解释 FlowDocumentReader 中给定 XML 文档的内容。虽然它可以工作并且可以编译,但我看到的窗口是这样的:

FlowDocumentReader 中的 WPF XML

在 WPF FlowDocumentReader 中显示 XML 的正确方法是什么,但我希望它正确缩进,而不是在两列中?

编辑:我为 FlowDocumentReader 找到了一个名为 的标签,您将其放入标签中应出现换行符的文本中。我唯一不知道的是如何在段落标签中缩进一行文本。是的,您可以缩进段落本身,但不能将段落放在段落标记中。您可以将文本换行在段落标签内的跨度标签中,但不确定如何处理它。

4

1 回答 1

0

Inlines接受字符串的重载之一。您可以使用 XElement 获得漂亮缩进的 XML(假设Paragraph有 name par):

var xml_string = 
    @"<?xml version='1.0' encoding='utf-8'?>
        <proekti>
            <sektorskiPateka>sektorski disk</sektorskiPateka>
            <naspateka>Network Access Storage (NAS) disk</naspateka>
        </proekti>";
var xml = XElement.Parse(xml_string);
par.Inlines.Add(xml.ToString());
于 2020-01-09T19:38:51.647 回答