在wpf中自动调整画布

时间:2014-01-20 14:52:24

标签: wpf canvas scrollviewer

wpf中的画布如何自动调整?我在scrollviewer中有一个画布,我将在后面的代码中添加几个按钮和行。由于我不知道按钮的位置,我必须为画布的宽度和高度硬编码一个非常大的数字,或者如果我添加太多按钮,它只能显示它们的一部分。

我尝试将宽度和高度设置为自动,但它不起作用。

  <Grid>
      <ScrollViewer HorizontalScrollBarVisibility="Visible"    VerticalScrollBarVisibility="Visible">
          <Canvas Width="Auto" Height="Auto" Name="cv1"></Canvas>
      </ScrollViewer>
  </Grid>

1 个答案:

答案 0 :(得分:1)

Canvas元素是唯一无法自动调整大小的元素,因为它没有固有的布局特征。如果您希望在子元素进入时调整Control的大小,则可以使用从Grid派生的内容。 尝试使用UniformGrid而不是Canvas来填充您想要的元素。它允许您只添加元素而不受UniformGrid处理的任何布局约束。否则,如果使用简单的Grid,则必须通过设置每个子元素的Margin属性来为元素定义位置。

希望这有帮助。