Пошаговое руководство. Размещение пользовательского элемента управления Windows Forms с помощью конструктора WPF
Обновлен: Ноябрь 2007
В этом примере демонстрируется использование Windows Presentation Foundation (WPF) для Visual Studio (конструктор) для размещения составного элемента управления Windows Forms в приложении WPF. Дополнительные сведения о взаимодействии технологий Windows Forms и WPF см. в разделе Миграция и взаимодействие систем.
В этом пошаговом руководстве рассматриваются следующие задачи.
Создание проекта.
Создание составного элемента управления Windows Forms.
Размещение элемента управления Windows Forms в приложении WPF.
![]() |
---|
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих параметров или версии среды. Для изменения параметров выберите пункт Импорт и экспорт параметров в меню Сервис. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Обязательные компоненты
Ниже приведены компоненты, которые необходимы для выполнения данного пошагового руководства.
- Visual Studio 2008.
Создание проекта
Первым этапом является создание проекта ведущего приложения.
Создание проекта
Создайте проект приложения WPF с именем «DemoApplication». Дополнительные сведения см. в разделе Практическое руководство. Создание нового проекта приложения WPF.
В WPF (конструктор) откроется файл Window1.xaml.
В обозревателе решений добавьте ссылку на сборку WindowsFormsIntegration, которая называется WindowsFormsIntegration.dll.
В обозревателе решений добавьте ссылку на сборку Windows Forms, которая называется System.Windows.Forms.dll.
Создание составного элемента управления Windows Forms
В этой процедуре показан способ создания составного элемента управления, размер которого изменяется в соответствии с его содержимым. Элемент управления TableLayoutPanel и свойство AutoSize обеспечивают создание динамического макета элемента управления. Дополнительные сведения см. в разделе Элемент управления TableLayoutPanel (Windows Forms).
Создание составного элемента управления Windows Forms
Добавьте в решение новый проект библиотеки элементов управления Windows Forms с именем «DemoControlLibrary». Дополнительные сведения см. в разделе Практическое руководство. Добавление и удаление элементов решения.
В конструкторе Windows Forms Designer открывается элемент управления UserControl1
В Панели элементов дважды щелкните элемент управления TableLayoutPanel. Элемент управления TableLayoutPanel появится на поверхности разработки.
Выберите Удалить последнюю строку из меню смарт-тегов Задачи TableLayoutPanel.
Перетащите с Панели элементов элемент управления Label и добавьте его в первую ячейку элемента управления TableLayoutPanel.
В окне Свойства установите значения следующих свойств для элемента управления Label:
Свойство
Значение
AutoSize
True
Dock
Fill
Margin
0,0,0,0
Text
Введите дату:
TextAlign
MiddleCenter
Перетащите с Панели элементов элемент управления MaskedTextBox и добавьте его во вторую ячейку элемента управления TableLayoutPanel.
Выберите глиф смарт-тега (
) в элементе управления MaskedTextBox и выберите Настройка маски из меню Задачи MaskedTextBox.
Появится диалоговое окно Маска ввода.
Из столбца Описание маски выберите Краткий формат даты и нажмите кнопку OK.
В верхней части окна Свойства из раскрывающегося списка выберите элемент управления TableLayoutPanel.
Свойству AutoSize присвойте значение true.
В верхней части окна Свойства выберите UserControl1.
Установите для свойства AutoSize значение true, а для свойства Size — значение 0,0.
Элемент управления UserControl1 изменяет размер по своему содержимому.
В меню Сборка выберите Собрать решение для построения решения.
Размещение элемента управления Windows Forms в приложении WPF
Для размещения элемента управления UserControl1 в приложении WPF используется элемент WindowsFormsHost .
Размещение элемента управления Windows Forms в WPF
В обозревателе решений добавьте в проекте «DemoApplication» ссылку на проект «DemoControlLibrary». Дополнительные сведения см. в разделе Практическое руководство. Добавление или удаление ссылок в Visual Studio (Visual Basic).
Откройте файл Window1.xaml в WPF (конструктор).
В представлении XAML импортируйте пространство имен DemoControlLibrary, вставив следующее сопоставление пространства имен в открывающем теге Window. Дополнительные сведения см. в разделе Практическое руководство. Импорт пространства имен в XAML.
xmlns:dc="clr-namespace:DemoControlLibrary;assembly=DemoControlLibrary"
После открывающего тега Grid вставьте следующий код.
<WindowsFormsHost HorizontalAlignment="Left" VerticalAlignment="Top"> <dc:UserControl1/> </WindowsFormsHost>
В конструкторе появится область, представляющая размещенные элементы управления Windows Forms.
Следующие действия
Можно также размещать элементы управления WPF в формах Windows Forms. Дополнительные сведения см. в разделе Использование элементов управления Windows Presentation Foundation.