如何找出WPF中视觉的最小渲染大小?
问题描述:
我试图在游戏桌旁显示游戏桌和信息面板,我需要计算信息面板的最小宽度以正确显示游戏桌面。如何找出WPF中视觉的最小渲染大小?
这是我的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>
而问题是,当我调整窗口的右侧面板中的一部分可能会被裁剪这是我不想要的东西。
答
问题是您使用的是错误的外部面板。它允许第一个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>