Windows Form 和 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 的任何色彩都必須完全不透明,且 Alpha 值為 0xFF。

- 如果 Background 不是純色, WindowsFormsHost 控制項會從 Background 屬性建立點陣圖。 控制項會將 WindowsFormsHost 這個點陣圖指派給 BackgroundImage 裝載控制項的 屬性。 這會提供類似于透明度的效果。 注意: 您可以覆寫此行為,也可以移除 Background 屬性對應。
Cursor Cursor 如果預設對應尚未重新指派, WindowsFormsHost 控制項會周遊其上階階層,直到找到其 Cursor 屬性集的上階為止。 此值會轉譯為最接近的對應 Windows Forms 資料指標。

如果屬性的預設對應 ForceCursor 尚未重新指派,周遊會在設定 true 為 的第一個上階 ForceCursor 上停止。
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 。 針對 NormalItalic 已停用。 針對 ItalicObliqueItalic ,已啟用 。
FontWeight Style 在主控控制項的 上 System.Drawing.Font WPF 屬性集會轉譯成對應的 Font 。 當其中一個屬性變更時,就會建立新的 Font 。 針對 BlackBoldDemiBoldExtraBoldHeavyMediumSemiBoldUltraBoldBold 啟用 : 。 針對 ExtraLightLightNormalRegularThinUltraLightBold 已停用 。
FontFamily

FontSize

FontStretch

FontStyle

FontWeight
Font

(System.Drawing.Font)
WPF 屬性集會轉譯成對應的 Font 。 當其中一個屬性變更時,就會建立新的 Font 。 裝載的 Windows Form 控制項會根據字型大小調整大小。

WPF 中的字型大小會以 906 英吋的 906 英吋表示,而 Windows Forms 則表示為 70 秒的英吋。 對應的轉換為:

Windows Forms 字型大小 = WPF 字型大小 * 72.0 / 96.0。
Foreground

(System.Windows.Media.Brush)
ForeColor

(System.Drawing.Color)
屬性 Foreground 對應是使用下列規則來執行:

- 如果 ForegroundSolidColorBrush ,則 Color 用於 ForeColor
- 如果 ForegroundGradientBrush ,請使用 的色彩 GradientStop ,並針對 使用最低位移值 ForeColor
- 針對任何其他 Brush 類型,保留 ForeColor 不變。 這表示會使用預設值。
IsEnabled Enabled 當 設定時 IsEnabledWindowsFormsHost 元素會在 Enabled 託管控制項上設定 屬性。
Padding Padding 裝載的 Windows Forms 控制項上所有四 Padding 個屬性值都會設定為相同的 Thickness 值。

- 大於 MaxValue 的值會設定為 MaxValue
- 小於 MinValue 的值會設定為 MinValue
Visibility Visible - Visible 對應至 Visible = true。 裝載的 Windows Forms 控制項是可見的。 不建議在託管控制項 false 上明確設定 Visible 屬性。
- Collapsed對應至 Visible = truefalse 。 裝載的 Windows Forms 控制項不會繪製,而且其區域會折迭。
- Hidden :裝載的 Windows Forms 控制項會在版面配置中佔用空間,但看不到。 在此情況下,屬性 Visible 會設定為 true 。 不建議在託管控制項 false 上明確設定 Visible 屬性。

元素完全支援 WindowsFormsHost 容器元素上的附加屬性。

如需詳細資訊,請參閱 逐步解說:使用 WindowsFormsHost 元素 對應屬性。

父屬性更新

大部分父屬性的變更會導致裝載子控制項的通知。 下列清單描述屬性的值變更時不會造成通知。

例如,如果您變更 元素的 Background 屬性值, BackColor 則裝載控制項的 WindowsFormsHost 屬性不會變更。

ElementHost 控制項的屬性對應

下列屬性提供內建的變更通知。 當您對應這些屬性時,請勿呼叫 OnPropertyChanged 方法:

  • AutoSize

  • BackColor

  • BackgroundImage

  • BackgroundImageLayout

  • BindingCoNtext

  • CausesValidation

  • ContextMenu

  • ContextMenuStrip

  • 資料指標

  • 固定

  • 已啟用

  • 字型

  • ForeColor

  • 位置

  • Margin

  • 邊距

  • 上層

  • 區域

  • RightToLeft

  • 大小

  • TabIndex

  • TabStop

  • Text

  • 可見

控制項 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 、、 BackgroundImageBackgroundImageLayout 屬性和任何附加的油漆處理常式。

BackColorTransparent如果 屬性設定為 trueImageBrush 則會根據控制項的父系外觀 ElementHost ,包括父 BackColor 系的 、、 BackgroundImageBackgroundImageLayout 屬性,以及任何附加的繪製處理常式。
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 在裝載的 元素上 如果 Boldtrue,則會將 FontWeight 設為 Bold

如果 Boldfalse,則會將 FontWeight 設為 Normal
Italic FontStyle 在裝載的 元素上 如果 Italictrue,則會將 FontStyle 設為 Italic

如果 Italicfalse,則會將 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

另請參閱