信息
您所需的主题如下所示。但此主题未包含在此库中。

FrameworkElement.Height 属性

2013/12/13

获取或设置 FrameworkElement 的建议高度。

Namespace:  System.Windows
程序集:  System.Windows(位于 System.Windows.dll 中)
XMLNS for XAML: 未映射到 xmlns。

public double Height { get; set; }
<frameworkElement Height="double"/>
-or-
<frameworkElement Height="Auto"/>

属性值

类型: System.Double
元素的高度(以逻辑像素为单位)。 默认值为 Double.NaN。 除了特殊的 Double.NaN 值,此值必须等于或大于 0。请参见“备注”了解上限信息。

依赖项属性标识符字段: HeightProperty

HeightFrameworkElement 上的三个用于指定高度信息的可写属性之一。 另外两个是 MinHeightMaxHeight。 如果这三个值之间存在冲突,则应用程序确定高度的实际顺序是:首先必须采用 MinHeight;然后采用 MaxHeight;最后,如果 Height 位于限制之内,则采用该值。

一些 FrameworkElement 派生对象也从 Shape 派生。 并非所有 Shape 类通常都使用 HeightWidth 来指定其外观,也可能使用可以定义点集的特定属性。 在这种情况下,计算 HeightWidth,但通常不直接设置。

自定义类可能也有类似的注意事项,即类可能具有比 HeightWidth 更有意义的用于指定维度的属性。 在这种情况下,HeightWidth 仍可作为成员提供,同时也可以设置,即便所希望的行为可能是不启用 HeightWidth 设置。 关键情况下,隐藏 HeightWidth 属性可能很有用,这样可以防止类的使用者直接设置它们。

如果设置了 HeightWidth 属性的对象是另一个父级的子集合的子对象,那么将 HeightWidth 设置为某个值只是 Windows Phone 布局的一个建议值。 布局系统和该父级的类的特定布局逻辑在布局进程中将该值用作非绑定输入,并且可能需要剪辑对象、调整对象大小、调整容器大小,或是跨布局中的多个参与对象执行这些行为的任意组合。 实际上,FrameworkElement 几乎总是其他某个对象的子对象;即使在页面根级别设置了 Height 时,也是如此。 (对于页面根元素,当基础应用程序模型建立基本呈现假设以在应用程序中创建 Windows Phone 的内容区域时,将使用该值。)

此属性的返回值总是与为它设置的任何值相同。 与之相反,ActualHeight 的值可能不同。 这种差异可能是持久的(因为布局拒绝了建议的大小),也可能是暂时的。 相对于属性系统的 Height 集,布局系统本身以异步方式工作,因而布局系统可能尚未处理特定大小调整属性的更改。

不允许 Height 的值为负。 从技术角度讲,允许 Height 的值不是整数,但应通常避免这种情况,并且一般通过默认的布局舍入行为来舍入这些值。

除了验证检查以外,Height 还有一个由布局系统实施的非确定性上限值(此值是一个非常大的数字,大于 Single.MaxValue,但小于 Double.MaxValue)。 如果超出此上限值,对象不会呈现,并且不会引发异常。 不要将 Height 值设置为远远大于任何可能的视觉显示的最大大小,否则可能超出此非确定性上限。

“自动”布局和 Double.NaN

HeightWidth 的默认值不是 0,它是 Double.NaNHeightWidth 支持成为未设置的“自动”值的功能。 由于 HeightWidthDouble 值,Double.NaN 用作一个表示此“自动”行为的特殊值。 布局系统通常将“自动”值解释为:应该将该对象的大小调整为布局中可用的大小,而不是特定的逻辑像素值。

在布局中使用某个对象时如果需要该对象的“自动”行为,不应设置 HeightWidth,应保持它们的 Double.NaN 默认值。 如果先前已设置值并希望重新启用“自动”行为,请明确地将 HeightWidth 设置为 Double.NaN

尽管不是常见做法(可能在可视状态模板中除外),您还可以在 XAML 中将 HeightWidth 特性显式设置为字符串 Auto,而非 Double 值。 在 XAML 中设置 Auto 是 XAML 分析器的特殊行为,而不是 TypeConverter 行为。

Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示: