Поделиться через


Сопоставление свойств 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 . Для Black, Bold, DemiBold, Medium, Heavy, SemiBold, ExtraBold или UltraBold: Bold активирован. Для 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, используйте цвет GradientStop с наименьшим значением смещения для ForeColor.
— Для любого другого 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 метод при сопоставлении этих свойств:

  • Автоматическое масштабирование

  • Цвет фона

  • Фоновое изображение

  • Расположение фонового изображения

  • BindingContext

  • Проверка причинности

  • Контекстное меню

  • ContextMenuStrip

  • Курсор

  • Док

  • Включен

  • Шрифт

  • ForeColor

  • Местоположение

  • Маржа

  • Набивочный материал

  • Родитель

  • Регион

  • Справа налево

  • Размер

  • 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.

См. также