Сопоставление свойств Windows Forms и WPF
Технологии Windows Forms и WPF используют две похожие, но разные модели свойств. Сопоставление свойств поддерживает взаимодействие между двумя архитектурами и предоставляет следующие возможности:
упрощение сопоставления соответствующих изменений свойств в окружении ведущего приложения с размещенным элементом или элементом управления;
обработка по умолчанию для сопоставления чаще всего используемых свойств;
простое удаление, переопределение или расширение свойств по умолчанию.
автоматическое обнаружение изменений значений свойств для ведущего приложения и их преобразование для размещенного элемента или элемента управления.
Примечание.
События изменения свойств не распространяются на иерархию ведущего элемента или элемента управления. Преобразование свойств не выполняется, если локальное значение свойства не меняется, так как используются прямое задание, стили, наследование, привязка данных или другие механизмы, изменяющие значение свойства.
Для доступа к сопоставлению свойств используйте свойство PropertyMapэлемента WindowsFormsHost и свойство PropertyMap элемента управления ElementHost.
Сопоставление свойств с помощью элемента WindowsFormsHost
Элемент WindowsFormsHost преобразует свойства WPF по умолчанию в их эквиваленты Windows Forms, используя следующую таблицу преобразования.
Размещение в Windows Presentation Foundation | Windows Forms | Поведение при взаимодействии |
---|---|---|
Background (System.Windows.Media.Brush) |
BackColor (System.Drawing.Color) |
Элемент WindowsFormsHost задает BackColor свойство размещенного элемента управления и свойство BackgroundImage размещенного элемента управления. Сопоставление выполняется с помощью следующих правил: - Если Background — это сплошной цвет, он преобразуется и используется для задания свойства BackColor размещенного элемента управления. Свойство BackColor не задается для размещенного элемента управления, так как размещенный элемент управления может наследовать значение свойства BackColor. Примечание. Размещенный элемент управления не поддерживает прозрачность. Любой цвет, назначенный BackColor, должен быть полностью непрозрачным со значением альфа, равным 0xFF. - Если Background не является сплошным цветом, элемент управления WindowsFormsHost создает растровое изображение из свойства Background. Элемент управления WindowsFormsHost назначает это растровое изображение свойству BackgroundImage размещенного элемента управления. Это обеспечивает эффект, аналогичный прозрачности. Примечание. Это поведение можно переопределить или можно удалить сопоставление для свойства Background. |
Cursor | Cursor | Если сопоставление по умолчанию не было переназначено, элемент управления WindowsFormsHost проходит по иерархии предков, пока не найдет предка с установленным свойством Cursor. Это значение преобразуется в ближайший соответствующий курсор Windows Forms. Если сопоставление по умолчанию для свойства ForceCursor не было переназначено, обход останавливается на первом предке, у которого для ForceCursor установлено значение true . |
FlowDirection (System.Windows.FlowDirection) |
RightToLeft (System.Windows.Forms.RightToLeft) |
LeftToRight сопоставляется No. RightToLeft сопоставляется Yes. Inherit не сопоставлен. FlowDirection.RightToLeft сопоставляется RightToLeft.Yes. |
FontStyle | Style для System.Drawing.Font размещенного элемента управления | Набор свойств WPF преобразуется в соответствующий шрифт Font. При изменении одного из этих свойств создается новый шрифт Font. Для Normal: Italic отключено. Для Italic или Oblique: Italic включено. |
FontWeight | Style для System.Drawing.Font размещенного элемента управления | Набор свойств WPF преобразуется в соответствующий шрифт Font. При изменении одного из этих свойств создается новый шрифт Font. For Black, Bold, DemiBold, ExtraBold, Heavy, Medium, SemiBold или UltraBold: Bold включено. For ExtraLight, Light, Normal, Regular, Thin или UltraLight: Bold отключено. |
FontFamily FontSize FontStretch FontStyle FontWeight |
Font (System.Drawing.Font) |
Набор свойств WPF преобразуется в соответствующий шрифт Font. При изменении одного из этих свойств создается новый шрифт Font. Размер размещенного элемента управления Windows Forms меняется в зависимости от размера шрифта. Размер шрифта в WPF выражается как один девяносто шестая часть дюйма, а в Windows Forms как семьдесят вторая часть дюйма. Соответствующее преобразование выглядит следующим образом: Размер шрифта Windows Forms = размер шрифта WPF * 72,0 / 96,0. |
Foreground (System.Windows.Media.Brush) |
ForeColor (System.Drawing.Color) |
Сопоставление свойства Foreground выполняется с помощью следующих правил: - Если Foreground равно SolidColorBrush, используйте Color для ForeColor. - Если Foreground равно GradientBrush, используйте для ForeColor цвет GradientStop с наименьшим значением смещения. - Для любого другого типа Brush оставьте ForeColor без изменений. Это означает, что используется значение по умолчанию. |
IsEnabled | Enabled | Если IsEnabled задано, элемент WindowsFormsHost задает свойство Enabled размещенного элемента управления. |
Padding | Padding | Все четыре значения свойства Padding в размещенном элементе управления Windows Forms имеют одинаковое значение Thickness. - Значения, большие MaxValue, устанавливаются равными MaxValue. - Значения, меньшие MinValue, устанавливаются равными MinValue. |
Visibility | Visible | - Visible сопоставляется Visible = true . Размещенный элемент управления Windows Forms является видимым. Не рекомендуется явно задавать для свойства Visible размещенного элемента управления значение false .- Collapsed сопоставляется Visible = true или false . Размещенный элемент управления Windows Forms не отображается, и его область сворачивается.- Hidden : размещенный элемент управления Windows Forms занимает место в макете, но не отображается. В этом случае свойству Visible присваивается значение true . Не рекомендуется явно задавать для свойства Visible размещенного элемента управления значение false . |
Присоединенные свойства для элементов контейнера полностью поддерживаются элементом WindowsFormsHost.
Дополнительные сведения см. в разделе Пошаговое руководство. Сопоставление свойств с помощью элемента WindowsFormsHost.
Обновления свойств родителя
Изменения большинства свойств родителя вызывают передачу уведомлений размещенному дочернему элементу управления. В следующем списке описаны свойства, не вызывающие уведомлений при изменении их значений.
Например, при изменении значения свойства Background элемента WindowsFormsHost свойство BackColor размещенного элемента управления не меняется.
Сопоставление свойств с помощью элемента управления ElementHost
Следующие свойства предоставляют встроенное уведомление об изменениях. Не вызывайте метод OnPropertyChanged при сопоставлении этих свойств:
AutoSize
BackColor
BackgroundImage
BackgroundImageLayout
BindingContext
CausesValidation
ContextMenu
ContextMenuStrip
Курсор
Закрепить
Включен
Шрифт
ForeColor
Местонахождение
поле
Заполнение
Parent
Регион
RightToLeft
Size
TabIndex
TabStop
Текст
Видимо
Элемент управления ElementHost преобразует свойства Windows Forms по умолчанию в их эквиваленты WPF, используя следующую таблицу преобразования.
Дополнительные сведения см. в разделе Пошаговое руководство. Сопоставление свойств с помощью элемента управления ElementHost.
Размещение Windows Forms | Windows Presentation Foundation | Поведение при взаимодействии |
---|---|---|
BackColor (System.Drawing.Color) |
Background (System.Windows.Media.Brush) размещенного элемента |
Задание этого свойства принудительно инициирует перенакраску, используя ImageBrush. Если свойство BackColorTransparent имеет значение false (значение по умолчанию), эта кисть ImageBrush основана на внешнем виде элемента управления ElementHost, включая его свойства BackColor, BackgroundImage, BackgroundImageLayout и все присоединенные обработчики окраски.Если свойство BackColorTransparent имеет значение true (значение по умолчанию), кисть ImageBrush основана на внешнем виде родителя элемента управления ElementHost, включая свойства BackColor, BackgroundImage, BackgroundImageLayout родителя и все присоединенные обработчики окраски. |
BackgroundImage (System.Drawing.Image) |
Background (System.Windows.Media.Brush) размещенного элемента |
Установка этого свойства приводит к тому же поведению, которое описано для сопоставления BackColor. |
BackgroundImageLayout | Background (System.Windows.Media.Brush) размещенного элемента |
Установка этого свойства приводит к тому же поведению, которое описано для сопоставления BackColor. |
Cursor (System.Windows.Forms.Cursor) |
Cursor (System.Windows.Input.Cursor) |
Стандартный курсор Windows Forms преобразуется в соответствующий стандартный курсор WPF. Если курсор Windows Forms не является стандартным курсором, используется значение по умолчанию. |
Enabled | IsEnabled | Если Enabled установлено, элемент управления ElementHost устанавливает свойство IsEnabled размещенного элемента управления. |
Font (System.Drawing.Font) |
FontFamily FontSize FontStretch FontStyle FontWeight |
Значение Font преобразуется в соответствующий набор свойств шрифта WPF. |
Bold | FontWeight размещенного элемента | Если значение Bold равно true , то FontWeight присваивается значение Bold.Если значение Bold равно false , то FontWeight присваивается значение Normal. |
Italic | FontStyle размещенного элемента | Если значение Italic равно true , то FontStyle присваивается значение Italic.Если значение Italic равно false , то FontStyle присваивается значение Normal. |
Strikeout | TextDecorations размещенного элемента | Применяется только при размещении элемента управления TextBlock. |
Underline | TextDecorations размещенного элемента | Применяется только при размещении элемента управления TextBlock. |
RightToLeft (System.Windows.Forms.RightToLeft) |
FlowDirection (FlowDirection) |
No сопоставляется LeftToRight. Yes сопоставляется RightToLeft. |
Visible | Visibility | Элемент управления ElementHost устанавливает Visibility свойство размещенного элемента с помощью следующих правил: - Visible = true сопоставляется Visible.- Visible = false сопоставляется Hidden. |
См. также
.NET Desktop feedback