我想将元素放在控件中,以便它们最初适合这样(如StackPanel
水平方向):
但是,当元素叠加到它们不再适合屏幕时,我希望它们开始表现得像这样:
与UniformGrid
类似:随着元素数量的增加,它们会变小。
最好的或有什么方法可以做到这一点?由于外部控件的大小是可变的(取决于用户的屏幕大小),我不能“破解”它使用一个或另一个组件,具体取决于元素的数量,因为我无法预测“打破”所需的数量屏幕。
答案 0 :(得分:4)
最简单/最快的路线,将其设置为ViewBox
并将其设置为Stretch="Uniform"
为您执行此操作,如下所示,只需添加/减去矩形即可获得概念...
<Viewbox Stretch="Uniform" MaxHeight="60" MaxWidth="200">
<StackPanel Orientation="Horizontal">
<Rectangle Fill="Red" Margin="5" Height="50" Width="50"/>
<Rectangle Fill="Red" Margin="5" Height="50" Width="50"/>
<Rectangle Fill="Red" Margin="5" Height="50" Width="50"/>
<Rectangle Fill="Red" Margin="5" Height="50" Width="50"/>
<Rectangle Fill="Red" Margin="5" Height="50" Width="50"/>
<Rectangle Fill="Red" Margin="5" Height="50" Width="50"/>
<Rectangle Fill="Red" Margin="5" Height="50" Width="50"/>
<Rectangle Fill="Red" Margin="5" Height="50" Width="50"/>
<Rectangle Fill="Red" Margin="5" Height="50" Width="50"/>
<Rectangle Fill="Red" Margin="5" Height="50" Width="50"/>
</StackPanel>
</Viewbox>
希望这会有所帮助。干杯