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