Получить исходный код XAML для окна WPF - PullRequest
3 голосов
/ 02 марта 2010

Я хотел бы получить исходный код XAML для окна WPF (MainWindow). Нажатие кнопки в этом окне вернет XAML окна, и я сохраню его в другом файле.

Возможно ли это и как этого достичь?

Ответы [ 3 ]

3 голосов
/ 02 марта 2010

Вы можете использовать XamlWriter :

using (Stream stream = File.OpenWrite("D:\\Test.xaml"))
{
    XamlWriter.Save(this, stream);
}
2 голосов
/ 02 марта 2010

Вы можете использовать XamlWriter для некоторой базовой сериализации Xaml. В частности, посмотрите на эту статью о ее ограничениях .

1 голос
/ 02 марта 2010

Предыдущие ответы верны, но я также должен упомянуть, что вы также можете извлечь исходный XAML, использованный для создания окна (при желании), используя API для расширения BAMLViewer Reflector.

BAMLViewer решает проблему, отличную от XamlWriter: использование Reflector / BAMLViewer возвращает исходный исходный XAML со всеми привязками и т. Д. Без изменений, но не включает текущие значения свойств. Использование XamlWriter будет включать текущие значения свойств, но такие вещи, как ссылки на ресурсы и расширения разметки, будут потеряны. Кроме того, некоторые вещи не будут сериализованы с использованием XamlWriter.

Вы должны выбирать между ними в зависимости от потребностей вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...