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


Пошаговое руководство. Предоставление пользовательских метаданных времени разработки

Конструктор WPF для Visual Studio позволяет предоставлять пользовательские метаданные времени разработки для разных конструкторов. Например, можно предоставить разные взаимодействия разработки для пользовательских элементов управления в Visual Studio и Expression Blend. Чтобы зарегистрировать метаданные времени разработки в конструкторе, необходимо реализовать интерфейс IProvideAttributeTable и вызвать один из методов AddCustomAttributes.

В этом пошаговом руководстве будет показано, как предоставить пользовательскую реализацию времени разработки для библиотеки пользовательских элементов управления WPF или Silverlight. В данном пошаговом руководстве выполняются следующие задачи.

  • Создание проекта библиотеки настраиваемых элементов управления WPF.

  • Создание отдельной сборки для метаданных времени разработки.

Когда закончите, вы будете знать, как предоставить пользовательские метаданные времени разработки для пользовательского элемента управления WPF или Silverlight.

Примечание

Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих настроек или выпуска.Чтобы изменить параметры, выберите в меню Сервис пункт Импорт и экспорт параметров.Дополнительные сведения см. в разделе Работа с параметрами.

Обязательные компоненты

Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.

  • Visual Studio 2010.

Создание пользовательского элемента управления

Первым этапом является создание проекта для пользовательского элемента управления WPF.

Создание пользовательского элемента управления

  1. Создайте новый проект библиотеки пользовательских элементов управления WPF на языке Visual Basic или Visual C# с именем TailspinToysControlLibrary.

    В редакторе кода откроется код для элемента управления CustomControl1.

    Примечание

    Если пользовательское взаимодействие разработки должно предназначаться только для Expression Blend 4 и Visual Studio 2010, задайте целевой платформой проекта .NET Framework 4.Если пользовательское взаимодействие разработки должно предназначаться только для Expression Blend 3, Expression Blend 4 и Visual Studio 2010, задайте целевой платформой проекта .NET Framework 3.5.

  2. В обозревателе решений измените имя файла с кодом на TailspinToysControl.cs или TailspinToysControl.vb. Если появляется окно сообщения, запрашивающее подтверждение переименования всех ссылок в этом проекте, нажмите кнопку Да.

  3. Откройте свойства проекта и перейдите на вкладку Построение (Компиляция для Visual Basic).

  4. Задайте выходной путь проекта как "bin\".

  5. Выполните построение решения.

Создание сборки метаданных времени разработки

Код времени разработки развертывается в особых сборках метаданных. В данном пошаговом руководстве пользовательские метаданные поддерживаются только средой Visual Studio и Expression Blend развертывается в сборке с именем TailspinToysControlLibrary.Design. Дополнительные сведения о наименовании сборок см. в разделе Развертывание сборок пользовательских элементов управления и сборок времени разработки.

Создание сборки метаданных времени разработки

  1. Добавьте к решению новый проект библиотеки классов на языке Visual Basic или Visual C# с именем TailspinToysControlLibrary.Design.

  2. Задайте выходной путь проекта как ".. \TailspinToysControlLibrary\bin\". В этом случае сборка элемента управления и сборка метаданных будут находиться в одной папке, что обеспечит доступ конструкторов к метаданным.

  3. Добавьте ссылки на следующие сборки WPF и XAML.

    • PresentationCore

    • PresentationFramework

    • System.Xaml

    • WindowsBase

  4. Добавьте ссылки на следующие сборки сред. Конструктор WPF. 

    • Microsoft.Windows.Design.Extensibility

    • Microsoft.Windows.Design.Interaction

    Примечание

    Если у вас установлена Expression Blend, вы можете увидеть два набора сборок сред. Конструктор WPF в диалоговом окне Добавление ссылок.Выберите две сборки, установленные в Visual Studio, расположенные в папке $(VSInstallDir)\Common7\IDE\PublicAssemblies.

    Примечание

    Если сборки сред. Конструктор WPF не появятся в диалоговом окне "Добавление ссылок".Щелкните вкладку Обзор и перейдите к сборкам в папке $(VSInstallDir)\Common7\IDE\PublicAssemblies.

  5. Добавьте ссылку на проект TailspinToysControlLibrary.

  6. В обозревателе решений измените имя файла кода "Class1" на RegisterMetadata.cs или RegisterMetadata.vb.

  7. Замените автоматически создаваемый код на следующий код. Этот код создает класс AttributeTable, который присоединяет пользовательские атрибуты времени разработки к классу TailspinToysControl.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    using Microsoft.Windows.Design;
    using Microsoft.Windows.Design.Features;
    using Microsoft.Windows.Design.Metadata;
    
    using TailspinToysControlLibrary;
    
    // The ProvideMetadata assembly-level attribute indicates to designers
    // that this assembly contains a class that provides an attribute table. 
    [assembly: ProvideMetadata(typeof(TailspinToysControlLibrary.Design.RegisterMetadata))]
    namespace TailspinToysControlLibrary.Design
    {
        internal class RegisterMetadata : IProvideAttributeTable
        {
            // Called by the designer to register any design-time metadata. 
            public AttributeTable AttributeTable
            {
                get
                {
                    AttributeTableBuilder builder = new AttributeTableBuilder();
    
                    // Set ToolboxBrowsableAttribute to true to display your custom control 
                    // in the Toolbox and in the Choose Items... dialog box. 
                    builder.AddCustomAttributes(typeof(TailspinToysControl), new ToolboxBrowsableAttribute(true));
    
                    return builder.CreateTable();
                }
            }
        }
    }
    
  8. Выполните построение решения.

Следующие действия

См. также

Задачи

Пошаговое руководство. Создание пользовательского значка панели элементов для элемента управления

Ссылки

AttributeTable

Вкладка "Компоненты WPF" диалогового окна "Выбор элементов панели элементов"

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

Пошаговое руководство. Предоставление метаданных для значков панели инструментов

Значки панели элементов

Развертывание сборок пользовательских элементов управления и сборок времени разработки

Предоставление метаданных времени разработки