Описание тега xamlreader

Класс XamlReader считывает ввод XAML и создает граф объектов, используя средство чтения XAML WPF по умолчанию и связанный модуль записи объекта XAML.

XamlReader поддерживает следующие основные сценарии:

  1. Клонирование / фабрика объектов: без дополнительных механизмов ссылочный тип обычно не может быть включен более чем в одну позицию в дереве объектов WPF. (Примеры дополнительных механизмов, которые предлагают поддержку совместного использования или повторного использования в WPF, включают объекты, основанные на Freezable, или поддержку общих объектов, таких как Brush, которые упоминаются как элемент из ResourceDictionary.) Один способ клонирования объекта. который уже находится в дереве объектов, заключается в сериализации объекта с помощью XamlWriter.Save. Затем вы используете сериализованную строку в качестве входных данных для вызова Load с потоком или XmlReader в качестве посредника.

  2. Создание объектов на основе своевременной информации: часто есть другие способы, чтобы поздняя привязка или пользовательский ввод изменяли состояние существующих объектов. Например, вы можете использовать одно и то же значение для установки нескольких свойств или использовать привязку данных. Но если у вас есть сценарий, в котором даже тип создаваемого объекта можно определить только во время выполнения или при взаимодействии с пользователем, то создание такого объекта путем создания строки для ввода Load часто является полезным методом.

  3. Использование существующих методов ресурсов: тип Stream часто используется в других платформах или технологиях для передачи данных или объектов через границы приложения или для подобных ситуаций. Затем вы можете использовать методы Stream для хранения или получения данных в формате XAML, которые вы в конечном итоге используете для создания объекта как части вашего приложения.

  4. Фиксированные документы: ваше приложение может загружать локальные или загруженные документы XPS для включения в дерево объектов приложения WPF и пользовательский интерфейс.

Читать дальше