2013-04-26 47 views
0

我有一個winforms自定義控件,我試圖在WindowsFormControl中承載。 我似乎遇到一些問題,讓控制的高度正確行爲。如何獲得我的WPF WindowsFormsControl的高度來填充包含的StackPanel?

我有一個網格,它包含一個StackPanel,其中包含實際嵌入的WindowsFormControl。我希望WindowsFormControl的高度佔用StackPanel中的所有可用高度。

實際winforms自定義用戶控件的高度行爲正確,因爲它填充WindowsFormHost中可用的高度區域。

我並不完全清楚發生了什麼事情。

Grid Grid.Row="0" Background="#7A66BAD2"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="9*"/> 
      <RowDefinition Height="1*"/> 
     </Grid.RowDefinitions> 

     <StackPanel Grid.Row="0" > 

      <WindowsFormsHost Name="RPIWinformsHost" Height="700" 
           Background="Orange" 
           HorizontalAlignment="Stretch" 
           VerticalAlignment="Stretch" 
           Margin="30,10,30,10"> 
       <rpiRTFControl:RPIReportDesignControl Name="RPIRTFControl" /> 

      </WindowsFormsHost> 

     </StackPanel> 

     <Border BorderBrush="#CCCCFF" Grid.Row="1" BorderThickness="6" 
       HorizontalAlignment="Stretch" Margin="30,0,30,0"> 
      <StackPanel Name="spCommands" 
       Orientation="Horizontal"> 

       <Button Name="btnTest" Content="Test" Height="25" Width="134"            
      FontSize="13" FontWeight="Bold" 
      Margin="10,0,10,0" 
      Click="btnTest_Click" /> 

      </StackPanel> 
     </Border> 

    </Grid> 

讓這種行爲正確的正確方法/技巧是什麼?

感謝, JohnB

+0

您不應該使用StackPanel,而是使用GridView。這將拉伸你的控制。 – Kenneth 2013-04-26 15:30:33

+0

你應該接受一些你的問題的答案。我也注意到你還沒有在這個網站投過一次票。在那工作。 – 2013-04-26 16:18:22

回答

1

的StackPanel並不意味着使用這種方式,它通常是一個系列,你不知道有多少會出現,直到運行時自動調整大小的物品。只需刪除StackPanel並讓WindowsFormsHost直接位於Grid下。

<WindowsFormsHost Name="RPIWinformsHost" Height="700" Grid.Row="0" 
       Background="Orange" 
       HorizontalAlignment="Stretch" 
       VerticalAlignment="Stretch" 
       Margin="30,10,30,10"> 
     <rpiRTFControl:RPIReportDesignControl Name="RPIRTFControl" /> 
</WindowsFormsHost> 
相關問題