Пошаговое руководство. Размещение пользовательского элемента управления Windows Forms с помощью конструктора WPF
В этом пошаговом руководстве демонстрируется использование Конструктор WPF для Visual Studio для размещения составного элемента управления Windows Forms в приложении WPF. Дополнительные сведения о взаимодействии технологий Windows Forms и WPF см. в разделе Миграция и взаимодействие систем.
В этом пошаговом руководстве рассматриваются следующие задачи.
Создание проекта.
Создание составного элемента управления Windows Forms.
Размещение элемента управления Windows Forms в приложении WPF.
Примечание
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих настроек или выпуска.Чтобы изменить параметры, выберите в меню Сервис пункт Импорт и экспорт параметров.Дополнительные сведения см. в разделе Работа с параметрами.
Обязательные компоненты
Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.
- Visual Studio 2010.
Создание проекта
Первым этапом является создание проекта главного приложения.
Создание проекта
Создайте проект приложения WPF с именем "DemoApplication". Дополнительные сведения см. в разделе Практическое руководство. Создание нового проекта приложения WPF.
Файл MainWindow.xaml будет открыт в сред. Конструктор WPF.
В обозревателе решений добавьте ссылку на сборку "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
Текст
Введите дату:
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.
Откройте файл MainWindow.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. Дополнительные сведения см. в разделе Использование элементов управления WPF.
См. также
Задачи
Пошаговое руководство. Размещение элемента управления Windows Forms в приложении WPF