如何获得我的WPF WindowsFormsControl的高度来填充包含的StackPanel?
问题描述:
我有一个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
答
的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>
您不应该使用StackPanel,而是使用GridView。这将拉伸你的控制。 – Kenneth 2013-04-26 15:30:33
你应该接受一些你的问题的答案。我也注意到你还没有在这个网站投过一次票。在那工作。 – 2013-04-26 16:18:22