我正试图在游戏桌旁边显示一个游戏桌和信息面板,我需要计算信息面板的最小宽度,以便正确显示游戏桌。
这是我的XAML代码:
<StackPanel Orientation="Horizontal">
<Rectangle Width="Auto" Height="Auto" Name="gamedeskRect" Style="{DynamicResource GameDesk}" />
<StackPanel Name="infoPanel" Width="Auto" HorizontalAlignment="Right" Height="Auto" VerticalAlignment="Center" Margin="10,0,0,0">
<!-- a few textblocks in a grid here -->
</StackPanel>
</StackPanel>
问题在于,当我调整窗口大小时,可能会裁剪右侧面板的一部分,这是我不想要的。
答案 0 :(得分:1)
问题是你使用了错误的外部面板。它允许第一个Rectangle占用尽可能多的空间,而不是剩余的空间。如果您切换到DockPanel
,这应该可以解决您的问题(尽管您需要重新组织一下内容以支持LastChildFill
):
<DockPanel LastChildFill="True">
<StackPanel Name="infoPanel" DockPanel.Dock="Right" VerticalAlignment="Center" Margin="10,0,0,0">
<!-- a few textblocks in a grid here -->
</StackPanel>
<Rectangle Width="Auto" Height="Auto" Name="gamedeskRect" Style="{DynamicResource GameDesk}" />
</DockPanel>