wpf中的画布如何自动调整?我在scrollviewer中有一个画布,我将在后面的代码中添加几个按钮和行。由于我不知道按钮的位置,我必须为画布的宽度和高度硬编码一个非常大的数字,或者如果我添加太多按钮,它只能显示它们的一部分。
我尝试将宽度和高度设置为自动,但它不起作用。
<Grid>
<ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible">
<Canvas Width="Auto" Height="Auto" Name="cv1"></Canvas>
</ScrollViewer>
</Grid>
答案 0 :(得分:1)
Canvas
元素是唯一无法自动调整大小的元素,因为它没有固有的布局特征。如果您希望在子元素进入时调整Control
的大小,则可以使用从Grid
派生的内容。
尝试使用UniformGrid
而不是Canvas
来填充您想要的元素。它允许您只添加元素而不受UniformGrid
处理的任何布局约束。否则,如果使用简单的Grid
,则必须通过设置每个子元素的Margin
属性来为元素定义位置。
希望这有帮助。