Windows フォームと WPF プロパティの割り当て
更新 : 2007 年 11 月
Windows フォーム テクノロジと WPF テクノロジは、類似する 2 つのプロパティ モデルを使用しますが、まったく同じというわけではありません。プロパティの割り当ては、2 つのアーキテクチャ間の相互運用をサポートし、次の機能を提供します。
ホスト環境での関連するプロパティの変更を、ホストされるコントロールまたは要素に簡単に割り当てられるようにします。
最もよく使用されるプロパティの割り当てに対する既定の処理を提供します。
既定のプロパティを簡単に削除、オーバーライド、または拡張できるようにします。
ホストでのプロパティ値の変更が自動的に検出され、ホストされるコントロールまたは要素に変換されるようにします。
![]() |
---|
プロパティ変更イベントは、コントロールまたは要素のホスト階層を上方には伝達されません。プロパティの値を変更する直接設定、スタイル、継承、データ バインディング、またはその他の機構のため、プロパティのローカル値が変更されない場合は、プロパティの変換は行われません。 |
プロパティの割り当てにアクセスするには、WindowsFormsHost 要素の PropertyMap プロパティおよび ElementHost コントロールの PropertyMap プロパティを使用します。
WindowsFormsHost 要素を使用したプロパティの割り当て
WindowsFormsHost 要素は、次の変換テーブルを使用して、WPF の既定のプロパティを Windows フォームでそれに相当するものに変換します。
Windows Presentation Foundation ホスト |
Windows フォーム |
相互運用動作 |
||||
---|---|---|---|---|---|---|
WindowsFormsHost 要素は、ホストされるコントロールの BackColor プロパティおよび BackgroundImage プロパティを設定します。割り当ては、次のルールを使用して行われます。
|
||||||
既定の割り当てが再割り当てされていない場合、WindowsFormsHost コントロールは、Cursor プロパティが設定されている先祖が見つかるまで、先祖の階層を処理します。この値は、対応する最も近い Windows フォーム カーソルに変換されます。 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 フォーム コントロールは、フォント サイズに基づいてサイズを変更します。 フォント サイズは、WPF では 1/96 インチで表され、Windows フォームでは 1/72 インチで表されます。対応する変換は次のとおりです。 Windows フォームのフォント サイズ = WPF のフォント サイズ * 72.0 / 96.0 |
||||||
Foreground プロパティの割り当ては、次のルールを使用して行われます。
|
||||||
IsEnabled が設定されていると、WindowsFormsHost 要素はホストされるコントロールの Enabled プロパティを設定します。 |
||||||
ホストされる Windows フォーム コントロールの Padding プロパティの 4 つの値はすべて、同じ Thickness 値に設定されます。 |
||||||
|
コンテナ要素の添付プロパティは、WindowsFormsHost 要素によって完全にサポートされます。
詳細については、「チュートリアル : WindowsFormsHost 要素を使用したプロパティの割り当て」を参照してください。
親プロパティの更新
ほとんどの親プロパティに対する変更は、ホストされる子コントロールに通知されます。値が変更されても通知が行われないプロパティを次に示します。
たとえば、WindowsFormsHost 要素の Background プロパティの値を変更しても、ホストされるコントロールの 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 フォームの既定のプロパティを WPF でそれに相当するものに変換します。
詳細については、「チュートリアル : ElementHost コントロールを使用したプロパティの割り当て」を参照してください。
Windows フォーム ホスト |
Windows Presentation Foundation |
相互運用動作 |
---|---|---|
(ホストされている要素の System.Windows.Media.Brush |
このプロパティを設定すると、ImageBrush での再描画が強制されます。BackColorTransparent プロパティが false (既定値) に設定されている場合、この ImageBrush は、BackColor、BackgroundImage、BackgroundImageLayout プロパティやアタッチされている描画ハンドラなど、ElementHost コントロールの外観に基づいています。 BackColorTransparent が true に設定されている場合、ImageBrush は、親の BackColor、BackgroundImage、BackgroundImageLayout プロパティやアタッチされている描画ハンドラなど、ElementHost コントロールの親の外観に基づいています。 |
|
(ホストされている要素の System.Windows.Media.Brush) |
このプロパティを設定すると、BackColor のマッピングに関する記述と同じ動作が発生します。 |
|
(ホストされている要素の System.Windows.Media.Brush) |
このプロパティを設定すると、BackColor のマッピングに関する記述と同じ動作が発生します。 |
|
Windows フォームの標準カーソルは、WPF の対応する標準カーソルに変換されます。Windows フォームが標準カーソルでない場合は、既定値が割り当てられます。 |
||
Enabled が設定されていると、ElementHost コントロールはホストされる要素の IsEnabled プロパティを設定します。 |
||
Font の値は、対応する WPF フォント プロパティのセットに変換されます。 |
||
ホストされている要素の FontWeight |
Bold が true の場合は、FontWeight が Bold に設定されます。 Bold が false の場合は、FontWeight が Normal に設定されます。 |
|
ホストされている要素の FontStyle |
||
ホストされている要素の TextDecorations |
TextBlock コントロールをホストしている場合のみ適用されます。 |
|
ホストされている要素の TextDecorations |
TextBlock コントロールをホストしている場合のみ適用されます。 |
|
No は LeftToRight にマップされます。 Yes は RightToLeft にマップされます。 |
||
ElementHost コントロールは、次のルールを使用して、ホストされる要素の Visibility プロパティを設定します。 |
参照
処理手順
チュートリアル : WindowsFormsHost 要素を使用したプロパティの割り当て
チュートリアル : ElementHost コントロールを使用したプロパティの割り当て
概念
Windows Presentation Foundation と Windows フォームの相互運用でサポートされるシナリオ