代码之家  ›  专栏  ›  技术社区  ›  void.pointer

如何在WPF中调整画布的大小?

  •  4
  • void.pointer  · 技术社区  · 14 年前

    我正在编写一个WPF应用程序,它有一个 Canvas 帆布 帆布 .

    我不确定这在WPF中是否可行,因为它的本质是与分辨率无关的。我的问题是:

    1. 帆布
    2. 当我调整我的 ,可渲染区域(客户端矩形)是否将达到该大小?如果没有,如何调整其大小以确保客户端矩形具有特定的宽度/高度?
    3. 帆布
    4. 当我调整我的 帆布 ,其他控件是否会像在WPF设计器中设计的那样适当调整大小?

    提前谢谢。

    2 回复  |  直到 13 年前
        1
  •  5
  •   Josh    14 年前

    放置在画布中的任何元素都不会根据画布的大小调整大小或重新定位。所以我认为设置画布的大小没有任何好处。也许你应该设置一个固定大小的窗口。

    否则,只需将Canvas.Width、Height和ClipToBounds设置为True,您就有了一个固定大小的Canvas,它用X/Y坐标定位子元素。

    此外,还应确保在画布上设置SnapsToDevicePixels=True,以便子元素具有清晰的像素对齐边界。

        2
  •  5
  •   Community arnoo    7 年前

    MyCanvas.Width = 350;
    MyCanvas.Height  = 450;
    

    这将设置大小,您可以渲染到超出此范围的坐标,但它将被剪裁。您可以将画布包装在滚动条中,以允许用户查看画布高度/宽度之外的内容。

    this SO question

        3
  •  1
  •   glihm    4 年前

    更新2020:on WPF.NET核心:如果 Canvas 他是一个孩子 Viewbox ,内容将自动缩放到 视窗

      <Viewbox Stretch="Fill"
               Width="50"
               Height="50">
    
         <Canvas>
           <Path.... />
         </Canvas>
    
      </Viewbox>