代码之家  ›  专栏  ›  技术社区  ›  resopollution

水平拉伸WPF画布

  •  8
  • resopollution  · 技术社区  · 15 年前

    我怎么做一个 Canvas 以可变宽度完全水平拉伸?这是家长 帆布 所以它没有父母,只有孩子。

    XAML源:以混合方式显示 http://resopollution.com/xaml.txt

    5 回复  |  直到 11 年前
        1
  •  14
  •   Dave Clemmer manu    11 年前

    使用A Grid 作为UI中的顶级元素,它将拉伸以填充容器。然后放一个 Canvas 具有 HorizontalAlignment="Stretch" 里面 网格 它会按照你想要的方式运行。

    <Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
      <Canvas Background="Blue"/>
    </Grid>
    

    这对我很有用。关键是您的顶级UI元素。而A 网格 默认情况下填充所有可用空间, 帆布 ES只占其内容所需的空间。

        2
  •  4
  •   Robin    15 年前

    我猜你试过了
    canvas.HorizontalAlignment = HorizontalAlignment.Stretch

    如果这不起作用,那么你可以做的就是 Width Height 画布的属性 ActualWidth ActualHeight 包含窗口的属性。

        3
  •  1
  •   Bryan Legend    15 年前

    您可以使用停靠面板来填充可用宽度。停靠面板控件列表中的最后一项将自动拉伸以填充剩余空间。

    <DockPanel>
       <Canvas />
    </DockPanel>
    
        4
  •  1
  •   PeterAllenWebb    15 年前

    画布应该自动执行此操作,除非手动设置高度和/或宽度。你想把画布放在什么样的控件上?你能发布你的密码吗?

        5
  •  1
  •   Dave Clemmer manu    11 年前

    问题是,您要指定 Height Width . 如果没有这些属性,控件可能会在设计器中消失,但当您将画布插入另一个控件时,它的大小应该适当。

    如果我记得正确的话,下一个版本的wpf将具有“designwidth”和“designheight”属性,允许您在设计器中以给定的大小显示控件,而不影响插入其他控件时的度量。