Сопоставление свойств Windows Forms и WPF
Технологии Windows Forms и WPF обладают двумя схожими, но различными моделями свойств. Сопоставление свойств поддерживает взаимодействие между этими двумя архитектурами и предоставляет следующие возможности:
Упрощает сопоставление изменений соответствующего свойства в среде хоста с размещаемым элементом управления или элементом.
Предоставляет обработку по умолчанию для сопоставления наиболее часто используемых свойств.
Позволяет легко удалять, переопределять или расширять свойства, заданные по умолчанию.
Гарантирует, что изменения значения свойства в хосте автоматически обнаруживаются и преобразуются в размещаемом элементе управления или элементе.
![]() |
---|
События изменения свойств не распространяются по иерархии размещающего элемента управления или элемента.Преобразование свойства не выполняется, если локальное значение свойства не изменилось при прямом задании, применении стилей, наследовании, привязке данных или при других механизмах, изменяющих значение свойства. |
Для доступа к сопоставлению свойств необходимо использовать свойство PropertyMap элемента WindowsFormsHost и свойство PropertyMap элемента управления ElementHost.
Сопоставление свойств с элементом WindowsFormsHost
Элемент WindowsFormsHost преобразует свойства WPF по умолчанию в их Windows Forms эквиваленты с помощью следующей таблицы преобразования.
Размещение Windows Presentation Foundation |
Windows Forms |
Взаимодействие |
---|---|---|
Элемент WindowsFormsHost задает свойства BackColor и BackgroundImage размещаемого элемента управления. Сопоставление выполняется по следующим правилам:
![]()
Размещаемый элемент управления не поддерживает прозрачность.Любой цвет, присваиваемый BackColor, должен быть полностью непрозрачным, со значением альфа 0xFF.
![]()
Такое поведение можно переопределить или можно удалить сопоставление свойств Background.
|
||
Если сопоставление по умолчанию не было назначено заново, элемент управления WindowsFormsHost ищет вверх по иерархии предков, пока не обнаружит предка с набором свойств Cursor. Это значение переводится в ближайший соответствующий курсор Windows Forms. Если сопоставление по умолчанию для свойства ForceCursor не было назначено заново, поиск завершается на первом предке со свойством ForceCursor, имеющим значение true. |
||
LeftToRight сопоставляется с No. RightToLeft сопоставляется с Yes. Inherit не сопоставляется. FlowDirection.RightToLeft сопоставляется RightToLeft.Yes. |
||
Style на размещенном элементе управления System.Drawing.Font |
Набор свойств WPF преобразуется в соответствующий Font. Когда одно из этих свойств изменяется, создается новый объект Font. Для свойства Normal шрифт Italic недоступен. Для Italic или Oblique Italic доступен. |
|
Style на размещенном элементе управления System.Drawing.Font |
Набор свойств WPF преобразуется в соответствующий Font. Когда одно из этих свойств изменяется, создается новый объект Font. Для свойств Black, Bold, DemiBold, ExtraBold, Heavy, Medium, SemiBold или UltraBold функция Bold доступна. Для свойств ExtraLight, Light, Normal, Regular, Thin или UltraLight функция Bold недоступна. |
|
Набор свойств WPF преобразуется в соответствующий Font. Когда одно из этих свойств изменяется, создается новый объект Font. Размещаемый элемент управления Windows Forms изменяет размер в соответствии с размером шрифта. Размер шрифта в WPF выражается как одна девяносто шестая доля дюйма, а в Windows Forms как одна семисекундная доля дюйма. Соответствующее преобразование: Размер шрифта Windows Forms = размер шрифта WPF * 72,0 / 96,0. |
||
Сопоставление свойства Foreground выполняется по следующим правилам:
|
||
Если задано свойство IsEnabled, элемент WindowsFormsHost задает свойство Enabled размещаемого элемента управления. |
||
Все четыре значения свойства Padding размещаемого элемента управления Windows Forms задаются тем же значением Thickness. |
||
|
Вложенные свойства элементов контейнера полностью поддерживаются элементом WindowsFormsHost.
Дополнительные сведения см. в разделе Пошаговое руководство: сопоставление свойств с помощью элемента WindowsFormsHost.
Обновление свойств родительского элемента
Изменения большинства свойств родительского элемента приводят к уведомлению размещаемых дочерних элементов управления. В следующем списке описываются свойства, которые не приводят к уведомлению при изменении их значений.
Например, если изменяется значение свойства Background элемента WindowsFormsHost, свойство BackColor размещаемого элемента управления не изменится.
Сопоставление свойств с элементом управления ElementHost
Следующие свойства предоставляют встроенные уведомления об изменении. Не следует вызвать метод OnPropertyChanged при сопоставлении этих свойств:
AutoSize
BackColor
BackgroundImage
BackgroundImageLayout
BindingContext
CausesValidation
ContextMenu
ContextMenuStrip
Курсор
Dock
Enabled
Шрифт
ForeColor
Расположение
Margin
Заполнение
Родительский
Region
RightToLeft
Размер
TabIndex
TabStop
Text
Visible
Элемент управления ElementHost преобразует свойства Windows Forms по умолчанию в их WPF эквиваленты с помощью следующей таблицы преобразования.
Дополнительные сведения см. в разделе Пошаговое руководство. Сопоставление свойств с помощью элемента управления ElementHost.
Размещение Windows Forms |
Windows Presentation Foundation (WPF) |
Взаимодействие |
---|---|---|
(System.Windows.Media.Brush) на размещенном элементе |
Задание этого свойства вызывает принудительную закраску с помощью ImageBrush. Если свойство BackColorTransparent имеет значение false (значение по умолчанию), объект ImageBrush основан на внешнем виде элемента управления ElementHost, в том числе на его свойствах BackColor, BackgroundImage, BackgroundImageLayout и всех присоединенных обработчиках закраски. Если свойство BackColorTransparent задано значением true (значением по умолчанию), этот ImageBrush основан на внешнем виде родительского элемента управления ElementHost, в том числе на свойствах родительского элемента BackColor, BackgroundImage, BackgroundImageLayout и всех присоединенных обработчиках закраски. |
|
(System.Windows.Media.Brush) на размещенном элементе |
Задание этого свойства вызывает такое же поведение, как и описанное для сопоставления BackColor. |
|
(System.Windows.Media.Brush) на размещенном элементе |
Задание этого свойства вызывает такое же поведение, как и описанное для сопоставления BackColor. |
|
Стандартный курсор Windows Forms преобразуется в соответствующий стандартный курсор WPF. Если Windows Forms не является стандартным курсором, назначается значение по умолчанию. |
||
Если задано свойство Enabled, элемент ElementHost задает свойство IsEnabled размещаемого элемента. |
||
Значение Font преобразуется в соответствующий ему набор свойств шрифта WPF. |
||
FontWeight размещаемого элемента |
Если значение свойства Bold равно true, свойству FontWeight присваивается значение Bold. Если Bold - false, FontWeight присваивается Normal. |
|
FontStyle размещаемого элемента |
Если значение свойства Italic равно true, свойству FontStyle присваивается значение Italic. Если значение свойства Italic равно false, свойству FontStyle присваивается значение Normal. |
|
TextDecorations размещаемого элемента |
Применяется только при размещении элемента управления TextBlock. |
|
TextDecorations размещаемого элемента |
Применяется только при размещении элемента управления TextBlock. |
|
No сопоставляется с LeftToRight. Yes сопоставляется с RightToLeft. |
||
Элемент управления ElementHost задает свойство Visibility размещаемого элемента по следующим правилам: |
См. также
Задачи
Пошаговое руководство: сопоставление свойств с помощью элемента WindowsFormsHost
Пошаговое руководство. Сопоставление свойств с помощью элемента управления ElementHost