我如何得到我的WPF WindowsFormsControl的高度来填充包含StackPanel



我有一个winforms自定义控件,我试图在WindowsFormControl中托管。我似乎遇到了一些问题,使控制的高度行为正确。

我有一个网格,它包含一个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

StackPanel不是这样使用的,它通常用于一系列自动大小的项目,在运行时你不知道会有多少。只需删除StackPanel,让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>

相关内容

  • 没有找到相关文章

最新更新