如何:根据绝对定位构造布局

更新:2007 年 11 月

Visual Studio Windows Presentation Foundation (WPF) 设计器提供了一个支持绝对定位的 Canvas Panel 控件。您可以使用 Canvas Panel 控件在您的应用程序中以绝对的方式定位元素。

重要说明:

只要可能,就最好使用动态布局。动态布局是最灵活的,适应诸如本地化之类的内容更改,并且允许最终用户最大限度地控制他们的环境。若要查看动态布局的示例,请参见如何:构造动态布局演练:构造动态布局

添加 Panel 控件

默认情况下,每个新的 WPF 应用程序都包含一个带有 Grid 面板的 Window。若要根据绝对定位创建布局,您必须使用 Canvas 面板。在此过程中,您将移除默认的 Grid 并添加一个 Canvas

添加 Panel 控件

  1. 在“设计”视图中,选择该网格。

    说明:

    您可以使用多种方式选择该网格,例如通过单击它内部的任意位置或者使用 Tab 键。有关如何在 WPF 设计器中选择元素的更多信息,请参见如何:在设计图面上选择和移动元素

  2. 按 Delete 键删除 Grid

  3. 在“工具箱”中,从“控件”组中将一个 Canvas 控件拖动到 Window 上。

  4. (可选)在“属性”窗口中,将 Canvas 的 Height 属性设置为 Auto。

    Canvas 会进行拉伸以填充 Window 的高度。

  5. (可选)在“属性”窗口中,将 Canvas 的 Width 属性设置为 Auto。

    Canvas 会进行拉伸以填充 Window 的宽度。

  6. 在“文件”菜单上,单击“全部保存”。

向面板中添加控件

接下来,您可以向面板中添加控件并使用 CanvasLeftTop 附加属性来对它们进行绝对定位。

向面板中添加控件

  1. 从“工具箱”中将一个控件拖动到 Canvas 上。

  2. 在“属性”窗口中,为该控件设置下列属性:

    • Canvas.Left

    • Canvas.Top

    说明:

    有两组互相排斥的属性:Left / Right,以及 Top / Bottom。只有 LeftTop 是在“属性”窗口中公开的,但是您可以在 XAML 编辑器中指定 RightBottom。如果您同时指定了 LeftRight,将只使用最后一个声明。如果您同时指定了 TopBottom,将只使用最后一个声明。

  3. 重复步骤 1 和步骤 2,直到所需的所有控件都添加到面板中为止。

  4. 在“文件”菜单上,单击“全部保存”。

请参见

任务

演练:根据绝对定位构造布局

概念

使用绝对定位和动态定位进行布局

WPF 设计器中的对齐方式

布局系统

WPF 设计器概述

其他资源

布局演练