1

WPF ユーザーコントロールを既存の WinForms プロジェクトに追加し、WPF ユーザーコントロールをドッキングしてスペース全体を埋めようとしています。

ボタンのクリックに応答して、WinForms UserControls を親フォーム (パネル) にロードする現在のフレームワークがあります。これは私がフックしようとしている場所です - 現在ロードされている WinForms UserControl には ElementHost があります。

階層:

  • Form1.cs - WinForms UserControls を動的にロードするパネルが含まれています
    • WinForms UserControl - ElementHost を含む
      • WPF ユーザー コントロール

ElementHost には、Dock が Fill に設定され、その Child プロパティが ucReport に設定されています。これは WPF UserControl であり、次のマークアップがあります (最上位のデザインのみが含まれています)。

<UserControl x:Class="MyClassName"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <TabControl HorizontalAlignment="Left" Name="tabControl1">
        <TabItem Header="Header1">
           ...The interesting stuff goes here
        </TabItem>
    </TabControl>
</UserControl>

フォームのサイズを変更すると、UserControl のコンテンツは垂直方向に拡張されますが、水平方向には、コンテンツを収容するのに十分な大きさしか拡張されません。

デザイナーで WinForms UserControl (ElementHost を持つもの) を表示すると、問題が明らかになります。指定された WPF コンテンツがレンダリングされ、上から下に塗りつぶされますが、左から右には塗りつぶされません。

ElementHostである親コンテナを満たすためにそれを取得するために(おそらくUserControl宣言で)設定する必要があるのはXAMLの何かだと思います-私はプロパティを見つけることができません。

誰かが私を啓発してくれますか?

4

1 に答える 1

3

Horizo​​ntalAlignment を Stretch に変更するか、完全に削除してください。

于 2009-06-11T15:56:03.143 に答える