Поделиться через


Изменения в расширяемости в Visual Studio 2010

Конструктор WPF для Visual Studio предоставляет высокотехнологичную платформу для реализации нестандартных решений в области разработки элементов управления WPF и Silverlight. API сред. Расширяемость конструктора WPF значительно изменился с момента его первоначального выпуска в составе Visual Studio 2008. В подразделах ниже описаны изменения в сред. Расширяемость конструктора WPF для Visual Studio 2010.

Поддержка Silverlight и многоплатформенных версий

Элементы управления времени разработки в Visual Studio 2008 были ориентированы только на последнюю версию платформы WPF. В Visual Studio 2010 поддержка распространена на несколько платформ, включая поддержку WPF 3.5, WPF 4, Silverlight 3 и будущих выпусков платформы во время разработки. Поскольку для всех этих платформ используется один и тот же API расширяемости, то автор элементов управления времени разработки может легко написать одно решение и использовать его в средах выполнения элементов управления всех платформ.

Поддержка в Expression Blend

Используя интерфейс расширяемости, реализованный в Visual Studio, теперь можно создавать элементы управления времени разработки для Expression Blend. Отдельные либо совмещенные интерфейсы времени разработки теперь можно предоставлять для этих двух сред разработки.

Регистрация метаданных

Самое значительное изменение в API расширяемости состоит в том, что интерфейс IRegisterMetadata был заменен интерфейсом IProvideAttributeTable. Это изменение в сочетании с реализацией многоплатформенной поддержки привело к глобальным переменам в API расширяемости. Это означает, что существующие реализации элементов управления времени разработки для Visual Studio 2008 не будут загружаться в Visual Studio 2010.

Кроме того, в Visual Studio 2010 с помощью атрибута ProvideMetadataAttribute можно указать, что сборка времени разработки предоставляет метаданные разработчику.

Новые точки расширяемости

Новый API расширяемости поддерживает также новые возможности для времени разработки, включая следующие.

  • В окне "Свойства" поддерживается доступ к модели из редакторов категорий. Это изменение в сочетании с перемещением общих свойств в верхние позиции списка категорий даст авторам элементов управления возможность обеспечивать широкие возможности редактирования в окне "Свойства".

  • Новые вспомогательные методы AdornerPanel, обеспечивающие более простые способы размещения графических элементов, чем использование настраиваемых элементов управления.

  • Новая модель программирования для совместного использования средств, реализованных во время разработки, между различными средствами разработки, такими как Visual Studio и Expression Blend.

  • Новая модель программирования для совместного использования средств, реализованных во время разработки, между различными целевыми платформами.

Сравнение возможностей расширяемости Visual Studio 2008 и Visual Studio 2010

В следующей таблице приводятся различия между созданием персонализированной среды разработки в Visual Studio 2008 и Visual Studio 2010.

Visual Studio 2008

Visual Studio 2010

Чтобы зарегистрировать типы времени разработки, реализуйте интерфейс IRegisterMetadata и используйте класс MetadataStore.

Чтобы зарегистрировать типы времени разработки, реализуйте интерфейс IProvideAttributeTable и вызовите метод CreateTable.

Добавлять атрибуты уровня сборки не требуется.

Сборки времени разработки необходимо отметить атрибутом ProvideMetadataAttribute.

Чтобы связать тип конструктора с графическим элементом, используйте метод GetImage для объекта NewItemFactory, который возвращает различные типы элементов.

Чтобы связать тип объекта со значком, используйте метод GetImageStream, возвращающий растровое изображение. Поддерживаются только растровые изображения.

Для доступа к свойствам модели используйте свойство зависимости, например:

ModelProperty backgroundProperty = adornedControlModel.Properties[Control.BackgroundProperty];

Для доступа к свойствам модели используйте имя свойства зависимости, например:

ModelProperty backgroundProperty = adornedControlModel.Properties["Background"];

Кроме того, можно определить класс PropertyIdentifier, представляющий собой сочетание тип/строка. Класс PropertyIdentifier используется вместе с вложенными свойствами, когда простого поиска имени недостаточно.

Чтобы разграничить пространство разметки и пространство отображения, используйте класс AdornerCoordinateSpaces.

Класс AdornerCoordinateSpaces не используется.

Чтобы указать расположение графического элемента относительно содержимого, используйте класс AdornerPlacementCollection.

Чтобы указать расположение графического элемента относительно содержимого, используйте методы SetAdornerHorizontalAlignment, SetAdornerVerticalAlignment и SetAdornerMargin. Класс AdornerPlacementCollection поддерживается для совместимости с предыдущими версиями.

См. также

Другие ресурсы

Расширяемость среды конструктора WPF