Сопоставление свойств Windows Forms и WPF
Обновлен: Ноябрь 2007
Технологии 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 или ObliqueItalic доступен. |
|
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
Cursor
Dock
Enabled
Font
ForeColor
Location
Margin
Padding
Parent
Region
RightToLeft
Size
TabIndex
TabStop
Text
Visible
Элемент управления ElementHost преобразует свойства Windows Forms по умолчанию в их WPF эквиваленты с помощью следующей таблицы преобразования.
Дополнительные сведения см. в разделе Пошаговое руководство. Сопоставление свойств с помощью элемента управления ElementHost.
Размещение Windows Forms |
Windows Presentation Foundation |
Взаимодействие |
---|---|---|
(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
Основные понятия
Общие сведения о взаимодействии WPF и Win32
Поддерживаемые сценарии взаимодействия Windows Presentation Foundation и Windows Forms