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


Пошаговое руководство. Размещение пользовательского элемента управления Windows Forms с помощью конструктора WPF

В этом пошаговом руководстве демонстрируется использование Конструктор WPF для Visual Studio для размещения составного элемента управления Windows Forms в приложении WPF. Дополнительные сведения о взаимодействии технологий Windows Forms и WPF см. в разделе Миграция и взаимодействие систем

В этом пошаговом руководстве рассматриваются следующие задачи.

  • Создание проекта.

  • Создание составного элемента управления Windows Forms.

  • Размещение элемента управления Windows Forms в приложении WPF.

Примечание

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

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

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

  • Visual Studio 2010.

Создание проекта

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

Создание проекта

  1. Создайте проект приложения WPF с именем "DemoApplication". Дополнительные сведения см. в разделе Практическое руководство. Создание нового проекта приложения WPF.

    Файл MainWindow.xaml будет открыт в сред. Конструктор WPF. 

  2. В обозревателе решений добавьте ссылку на сборку "WindowsFormsIntegration", которая называется WindowsFormsIntegration.dll.

  3. В обозревателе решений добавьте ссылку на сборку Windows Forms, которая называется System.Windows.Forms.dll.

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

В этой процедуре показан способ создания составного элемента управления, размер которого изменяется в соответствии с его содержимым. Элемент управления TableLayoutPanel и свойство AutoSize обеспечивают создание динамического макета элемента управления. Дополнительные сведения см. в разделе Элемент управления TableLayoutPanel (Windows Forms).

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

  1. Добавьте в решение новый проект библиотеки элементов управления Windows Forms с именем "DemoControlLibrary". Дополнительные сведения см. в разделе Практическое руководство. Добавление и удаление элементов решения.

    В конструкторе Windows Forms Designer открывается элемент управления UserControl1

  2. В панели элементов дважды щелкните элемент управления TableLayoutPanel. Элемент управления TableLayoutPanel появится на поверхности разработки.

  3. Выберите Удалить последнюю строку из меню смарт-тегов Задачи TableLayoutPanel.

  4. В окне Свойства присвойте свойству Dock значение Fill.

  5. Перетащите с панели элементов элемент управления Label и добавьте его в первую ячейку элемента управления TableLayoutPanel.

  6. В окне Свойства установите значения следующих свойств для элемента управления Label.

    Свойство

    Значение

    AutoSize

    True

    Dock

    Fill

    Margin

    0,0,0,0

    Текст

    Введите дату:

    TextAlign

    MiddleCenter

  7. Перетащите с панели элементов элемент управления MaskedTextBox и добавьте его во вторую ячейку элемента управления TableLayoutPanel.

  8. Выберите глиф смарт-тега (Глиф смарт-тэга) в элементе управления MaskedTextBox и выберите Настройка маски из меню Задачи MaskedTextBox.

    Появится диалоговое окно Маска ввода.

  9. Из столбца Описание маски выберите Краткий формат даты (или другое описание предопределенных масок) и нажмите кнопку OK.

  10. В верхней части окна Свойства из раскрывающегося списка выберите элемент управления TableLayoutPanel.

  11. Свойству AutoSize присвойте значение true.

  12. В верхней части окна Свойства выберите UserControl1.

  13. Установите для свойства AutoSize значение true, а для свойства Size — значение 0,0.

    Элемент управления UserControl1 изменяет размер по своему содержимому.

  14. В меню Сборка выберите Собрать решение для построения решения.

Размещение элемента управления Windows Forms в приложении WPF

Для размещения элемента управления UserControl1 в приложении WPF используется элемент WindowsFormsHost .

Размещение элемента управления Windows Forms в WPF

  1. В обозревателе решений добавьте в проекте "DemoApplication" ссылку на проект "DemoControlLibrary". Дополнительные сведения см. в разделе Практическое руководство. Добавление и удаление ссылок в Visual Studio.

  2. Откройте файл MainWindow.xaml в сред. Конструктор WPF.

  3. В представлении XAML импортируйте пространство имен DemoControlLibrary, вставив следующее сопоставление пространства имен в открывающем теге Window. Дополнительные сведения см. в разделе Практическое руководство. Импорт пространства имен в XAML.

    xmlns:dc="clr-namespace:DemoControlLibrary;assembly=DemoControlLibrary"
    
  4. После открывающего тега Grid вставьте следующий код.

    <WindowsFormsHost HorizontalAlignment="Left" VerticalAlignment="Top">
        <dc:UserControl1/>
    </WindowsFormsHost>
    

    В конструкторе появится область, представляющая размещенные элементы управления Windows Forms.

  5. Запустите решение, чтобы протестировать пользовательский элемент управления.

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

Можно также размещать элементы управления WPF в формах Windows Forms. Дополнительные сведения см. в разделе Использование элементов управления WPF.

См. также

Задачи

Пошаговое руководство. Размещение элемента управления Windows Forms в приложении WPF

Ссылки

WindowsFormsHost

ElementHost

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

Работа с элементами управления в конструкторе WPF

Миграция и взаимодействие систем