2013-04-26 2 views
0

WindowsFormControl에서 호스트하려고하는 winforms 사용자 지정 컨트롤이 있습니다. 컨트롤의 높이가 올바르게 작동하는 데 문제가있는 것 같습니다.포함 된 StackPanel을 채우기 위해 WPF WindowsFormsControl의 높이를 어떻게 얻습니까?

실제 포함 된 WindowsFormControl이 들어있는 StackPanel이 포함 된 표가 있습니다. 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> 

올바르게 작동하는 데 필요한 올바른 기술/트릭이란 무엇입니까?

덕분에, 존은 말하기

+0

GridPart가 아닌 StackPanel을 사용해야합니다. 그것은 당신의 통제를 뻗칠 것입니다. – Kenneth

+0

질문에 대한 답을 받아 들여야합니다. 나는 또한 당신이이 사이트에 한 번 투표하지 않은 것을 주목합니다. 그거 해봐. –

답변

1

StackPanel의는 당신이 실행시까지가 얼마나 많은 모르는 자동차 크기의 일련의 항목에 대한 일반적이다, 그 방법을 사용하는 것이 아닙니다. StackPanel을 제거하고 Grid 아래에서 WindowsFormsHost를 직접 사용할 수 있습니다.

<WindowsFormsHost Name="RPIWinformsHost" Height="700" Grid.Row="0" 
       Background="Orange" 
       HorizontalAlignment="Stretch" 
       VerticalAlignment="Stretch" 
       Margin="30,10,30,10"> 
     <rpiRTFControl:RPIReportDesignControl Name="RPIRTFControl" /> 
</WindowsFormsHost> 
관련 문제