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

适用于 Visual Studio 的 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 and Silverlight Designer 概述

其他资源

布局演练