2009-05-22 15 views
4

ich eine XAML-Datei bekam, das wie folgt beginnt:Erste ein Flowdocument aus einer XAML-Vorlagendatei

<FlowDocument 
     x:Name="flowDocument" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:Drawing="clr-namespace:System.Drawing;assembly=System.Drawing" 

Aktuelle Lösung eine StremReader verwendet, indem sie mit dem Flowdocument auf den physischen Pfad der XAML-Datei beziehen und dann analysieren Daten in die Vorlage.

Dies ist keine gültige Lösung, also muss ich das Fließdokument ohne Bezugnahme auf den physischen Pfad abrufen.

Ich mag würde den xmlns Namespace oder ähnlich in meinem C# -Code verwenden und wie

string result = XamlWriter.Save(flowDocument) 

zu tun und das Ergebnis für die Analyse verwendet werden.

Vorschläge?

Antwort

5

Wenn ich richtig verstehe, möchten Sie das FlowDocument aus einer Zeichenfolge abrufen? Sie können dies tun, mit XamlReader.Parse:

string result = XamlWriter.Save(flowDocument); 
FlowDocument new_doc = (FlowDocument)XamlReader.Parse(result); 

EDIT: Wenn die XAML-Datei ein Teil des Projekts ist, können Sie es als EmbeddedResource markieren und verwenden Sie die folgende laden:

Stream doc_stream = Assembly.GetExecutingAssembly() 
          .GetManifestResourceStream("YourNamespace.YourFile.xaml"); 
FlowDocument doc = (FlowDocument)XamlReader.Load(doc_stream); 
+0

Entschuldigung für meine ungeschickte Darstellung meines Problems. Ich habe eine XAML-Datei mit dem FlowDocument XAML. Ich möchte den Inhalt der XAML-Datei in die Hände bekommen, eine Zeichenfolge wäre superschön. – Slampen

+0

Wenn Ihr XAML ein Teil Ihres Projekts ist, können Sie die Ressourcenmethode verwenden. Andernfalls müssen Sie es irgendwie auf der Festplatte finden. –

Verwandte Themen