2009-05-22 2 views
4

я получил файл Xaml, который начинается так:Получение FlowDocument из шаблона XAML файла

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

Текущее решение использует StremReader со ссылкой на физический путь файла XAML с FlowDocument, а затем анализирует данные в шаблон.

Это недопустимое решение, поэтому мне нужно получить flowdocument с ссылкой на физический путь.

Я хотел бы использовать пространство имен Xmlns или подобное в моей C# код и сделать как

string result = XamlWriter.Save(flowDocument) 

И использовать результат для синтаксического анализа.

Предложения?

ответ

5

Если я правильно понял, вы хотите получить FlowDocument из строки? Вы можете сделать это с XamlReader.Parse:

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

EDIT: Если файл XAML является частью вашего проекта, вы можете пометить его как EmbeddedResource и использовать следующие, чтобы загрузить его:

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

К сожалению за мое неуклюжие представления моей проблемы. У меня есть xaml-файл с flowdocument xaml. Я хочу получить содержимое содержимого файла xaml, строка будет uber-nice. – Slampen

+0

Если ваш XAML является частью вашего проекта, вы можете использовать метод ресурсов. В противном случае вам нужно как-то найти его на диске. –

Смежные вопросы