网格面板

此页适用于 WPF 和 Silverlight 2

与其他用来管理更具体的布局功能的布局容器相比,网格面板是最灵活的布局容器。Microsoft Expression Blend 提供了两种布局编辑模式以配合网格面板使用:

  • Cc295203.ecb419d9-1def-4c4d-9656-cab9bdb89672(zh-cn,Expression.10).png画布布局模式(默认模式)提供了与在画布面板中进行编辑类似的编辑体验。在这种模式下,当移动已设置的列或行分隔线 Cc295203.e91e3024-62b1-46db-a73c-7e2ef5fd2780(zh-cn,Expression.10).png 时,位于这些行和列内的元素会保持不动。

  • Cc295203.c76bbf09-1922-4f45-8d92-9c8ae64ca4a4(zh-cn,Expression.10).png网格布局模式(高级)提供了更高级的布局功能。在这种模式下,设计时网格面板的行为与网格的运行时行为相似。

  • 通过单击在选定网格面板时显示在左上角的模式图标,或者通过在“选项”对话框(位于“工具”菜单上)的“美工板”部分内选中或清除“使用网格布局模式”复选框,可以在这两种模式之间切换。

适用于网格面板的布局模式

Cc295203.3078f933-314a-4951-966c-a66f5edbf69f(zh-cn,Expression.10).png

通过使用“工具箱”中的布局容器子菜单或“资源库”Cc295203.0224cabd-5da1-4e01-bddd-4a647401a098(zh-cn,Expression.10).png,可向文档中添加网格面板。

在“网格”布局模式下,对象在分为三行和三列的网格面板中的排列方式

Cc295203.0c06c18b-6bce-4d41-bf0f-0d1f8cdbf5d3(zh-cn,Expression.10).png

定位、调整大小和排列

在网格面板中布局的核心是如何使用对齐、边距以及 Width 和 Height 属性来有效地定位、排列元素以及调整元素大小:

  • **对齐  ** 决定元素相对于其父元素的位置。

  • 边距   决定控件四周以及子元素外部与面板边界之间的空白区域的大小。

  • **宽度和高度  ** 以像素为单位(即,设备无关 单位,每单位约为 1/96 英寸)测量的固定值。可以将这些属性设置为“Auto”,以使子元素根据父面板的大小自动调整大小。

Cc295203.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-cn,Expression.10).gif返回页首

排列子元素

您可以通过划分网格区域来排列网格中的元素。通过使用列和行分隔线 Cc295203.e91e3024-62b1-46db-a73c-7e2ef5fd2780(zh-cn,Expression.10).png 创建一系列行和列,以便定义用于在网格中布置元素的区域,可以达到此目的。当网格面板是文档中的活动元素时,会沿网格的顶端和左侧显示蓝色标尺。使用“选择”Cc295203.2ff91340-477e-4efa-a0f7-af20851e4daa(zh-cn,Expression.10).png 工具将鼠标指针移动到标尺上时,指针将变为带有加号 (+) 的箭头 Cc295203.a61a7ecb-9364-4bfe-ae2e-fac00d6858ba(zh-cn,Expression.10).png,并且会有一条橙色的线显示列或行的添加位置。单击顶端标尺上的任意位置,将在网格中的该位置添加一列;而单击左侧的标尺,会添加一行。

添加列网格分隔线

Cc295203.814b7368-8ef4-4771-a067-17e30a9f4bff(zh-cn,Expression.10).png

可以在网格面板中绘制子元素,使其相互重叠。重叠的元素将按照 Z 顺序(绘制元素或将其放到父元素中的顺序)进行显示。可以使用“对象”菜单上的“排序”来更改元素的 Z 顺序;也可以在“交互”面板的“对象和时间线”下右键单击相应的项,指向“排序”,然后单击所需的命令,从而更改元素的 Z 顺序。子元素也可以跨越多列或多行。也可以启用对齐,以便通过与对齐线进行对齐,更好地排列对象。通过对齐,在美工板上拖动对象时,既可以将对象与同一容器元素(如版式面板)中其他对象的边距、基线(对于文本对象)或对齐线(红色虚线)对齐,也可以将对象与网格面板中的列和行分隔线对齐。

Cc295203.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-cn,Expression.10).gif返回页首

调整行和列的大小

在处于网格面板的“网格布局模式”下时,网格面板顶端和左侧的标尺周围将显示锁图标。可以使用这些锁图标来设置要对网格中的行和列使用的大小调整选项。可以设置行的高度值和列的宽度值。有三个不同的选项可用于在网格中调整行和列的大小,这些选项又会影响子元素在网格中的排列方式。这些调整大小选项如下所示:

  • **固定大小   **使用像素值 (px);通过单击锁图标将其设置为“像素调整大小”(锁定位置)Cc295203.56fdad3b-cb94-41a2-8afb-3a2bbf4b2f1a(zh-cn,Expression.10).png 来进行设置。固定大小意味着行或列不会调整大小。

    Cc295203.alert_note(zh-cn,Expression.10).gif说明:

    在 Windows Presentation Foundation (WPF) 应用程序(如使用 Expression Blend 创建的应用程序)中,像素是指设备无关像素或设备无关单位,相当于在屏幕分辨率设置为 96 DPI 时显示器上一个像素的大小。无论显示器大小或屏幕分辨率是多少,每个单位均约等于 1/96 英寸。

  • **星形调整大小   **使用星号值 (*);通过单击锁图标将其设置为“星形调整大小”(解锁位置)Cc295203.1b4edaf6-b6a8-4498-80dc-949375fa610d(zh-cn,Expression.10).png 来进行设置。星形调整大小与 HTML 中的按百分比调整大小的效果相似。

  • **自动调整大小   **不使用定义的“Width”和“Height”属性;通过单击锁图标将其设置为“自动调整大小”Cc295203.aa9ec064-22f8-4b62-9eed-3f4772362d22(zh-cn,Expression.10).png 来进行设置。自动调整大小意味着网格面板中的元素将随父元素一起调整大小。

为网格面板中不同的列设置的星形调整大小和自动调整大小

Cc295203.98b234b2-ac3b-441f-9136-98375fee87b7(zh-cn,Expression.10).png

在美工板上选择一个网格分隔线 Cc295203.e91e3024-62b1-46db-a73c-7e2ef5fd2780(zh-cn,Expression.10).png 后,可以使用“属性”面板选择调整大小选项,并在使用星形或固定大小调整时调整“Width”属性。也可以在“属性”面板中设置列网格分隔线的“MaxWidth”和“MinWidth”属性。

Cc295203.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-cn,Expression.10).gif返回页首

定位子元素

在“画布布局模式”下,可以通过直接在美工板上工作并将元素拖动到网格面板中的任意位置(甚至拖到边界以外)来直观地定位元素,也可以在“属性”面板的“布局”下输入精确的位置值。

在“网格布局模式”下,可以通过设置每个元素的边距来设置子元素在网格中的位置。边距指定一个元素相对于定义网格的行和列或网格中的单元格边缘偏移的量。将子元素拖动到网格中时将会设置边距,边距表示从选定元素的边缘到下一条网格线(行或列)的距离。通过单击边距(节点)修饰工具即可设置边距。如果边距修饰工具如 Cc295203.dac083fe-54cd-4cdc-973a-bea351080175(zh-cn,Expression.10).pngCc295203.7eeec52f-8610-416e-a0f2-79c7bf117e77(zh-cn,Expression.10).png 所示是断开的,则表示尚未设置边距。如果边距修饰工具如 Cc295203.8523b4c7-be0f-4624-961a-6adb66120049(zh-cn,Expression.10).pngCc295203.95a79778-cb78-400c-9f4f-5f6fc5a02eb1(zh-cn,Expression.10).png 所示是封闭的,则表示已经设置边距。若在运行时调整网格的大小,则任何未设置边距的元素将保留在原位,而绑定到边距的元素则会在调整边距的大小时随之移动。

Expression Blend 也会使用简单的规则来设置默认的对齐方式:如果所绘制或调整大小的子元素跨越行或列的中间,则 Width 和 Height 将设置为 Auto;否则它将被固定。也可以设置对齐方式选项,以指示在调整网格大小时是否强制应用边距。对齐方式在网格中显示为实线(已设置对齐方式)或虚线(未设置对齐方式),如下图所示。

网格面板中的一个按钮,已绑定到(已设置边距 - 请注意显示的边距值)左侧和右侧,但未绑定到(未设置边距)顶部和底部

Cc295203.cd8d0751-ffa0-4f04-bc2f-09584ecd873d(zh-cn,Expression.10).png

  • 水平对齐

    • LeftCc295203.1e3c2891-633d-4162-a3bd-d5ac53046b56(zh-cn,Expression.10).png。在调整大小时,定位到左侧但向右拉伸。

    • CenterCc295203.02978741-8e12-476d-afa7-165b613ea515(zh-cn,Expression.10).png。无论如何调整大小,始终定位到水平中心。

    • RightCc295203.c0d22c24-ad68-4355-b8f2-d6a373deaf8e(zh-cn,Expression.10).png。在调整大小时,定位到右侧但向左侧拉伸。

    • StretchCc295203.90aa9534-0480-4a7f-b992-1af23c71ea9c(zh-cn,Expression.10).png。在调整大小时,同时沿两个水平方向拉伸。

  • 垂直对齐

    • BottomCc295203.7c84b219-479d-45e7-b2fc-2df1b5e35129(zh-cn,Expression.10).png。在调整大小时,定位到底端但向顶端拉伸。

    • CenterCc295203.5d244079-53d6-4188-ac2b-3a31054a2cd7(zh-cn,Expression.10).png。无论如何调整大小,始终定位到垂直中心。

    • TopCc295203.737a11a8-b9d6-4270-8432-f17bb11a1337(zh-cn,Expression.10).png。在调整大小时,定位到顶端但向底端拉伸。

    • StretchCc295203.fbd6b7db-d726-4f40-b8c7-b287423e6615(zh-cn,Expression.10).png。在调整大小时,同时沿两个垂直方向拉伸。

  • 边距设置   以像素为单位(或设备无关单位,每单位约等于 1/96 英寸)测量的“Top”、“Left”、“Right”和“Bottom”边距的固定值。当您将子元素拖动到网格中时会设置这些值,它们表示从选定元素的边缘到下一条网格线的距离。

Cc295203.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-cn,Expression.10).gif返回页首

调整子元素的大小

主要有两种用于子元素的调整大小选项:固定大小或自动调整大小。固定大小的元素在“布局”类别中设置了特定的“Width”和“Height”值。自动调整大小的元素将“Width”和“Height”值设置为“Auto”,并且根据父面板的大小自动调整大小。

  • MinWidth 和 MinHeight   元素在行或列中可以调整或缩放到的最小大小。

  • MaxWidth 和 MaxHeight   元素在行或列中可以调整或缩放到的最大大小。如果不希望设置最大大小,可以将其设置为“Infinity”。

  • 剪切内容   决定父面板是否应该剪切其子元素。

Cc295203.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-cn,Expression.10).gif返回页首

网格分隔线

GridSplitterCc295203.d08d529f-a27e-4a8f-95aa-8a4e8b4ee7be(zh-cn,Expression.10).png 是网格面板中使用的一种控件,用户可以与它进行交互,以便在运行时手动调整网格部件的大小。GridSplitter 包含在“资源库”中。

有关网格面板、GridSplitter 控件或如何创建自定义版式面板的详细信息,请参阅 Windows 软件开发工具包 (SDK).NET 开发(此链接可能指向英文页面)部分。

Cc295203.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-cn,Expression.10).gif返回页首

另请参见

概念

添加或删除行或列

更改行或列的调整大小选项