导出 (0) 打印
全部展开
此文章由机器翻译。 将光标移到文章的句子上,以查看原文。 更多信息。
译文
原文

FrameworkElement.MaxHeight 属性

获取或设置元素的最大高度约束。

命名空间:  System.Windows
程序集:  PresentationFramework(在 PresentationFramework.dll 中)
XAML 的 XMLNS: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[LocalizabilityAttribute(LocalizationCategory.None, Readability = Readability.Unreadable)]
[TypeConverterAttribute(typeof(LengthConverter))]
public double MaxHeight { get; set; }
<object MaxHeight="double"/>
- or –
<object MaxHeight ="qualifiedDouble"/>

XAML 值

double

Double

Double 值的字符串表示形式大于等于 0.0。 它被解释为与设备无关的单位(1/96 英寸)度量值。 字符串无需显式包含小数点。 例如,值 1 是可接受的。

在“属性值”一节中提到的相同 Double 范围限制也适用;不同之处在于,如果需要将该值显式设置为 PositiveInfinity,则必须使用 x:Static 标记扩展

qualifiedDouble

如上所述的一个 double 值,后跟下列单位声明字符串之一:pxincmpt

px(默认值)表示与设备无关的单位(每个单位 1/96 英寸)。

in 表示英寸;1in==96px

cm 表示厘米;1cm==(96/2.54) px

pt 表示磅;1pt==(96/72) px

属性值

类型:System.Double
元素的最大高度,单位是与设备无关的单位(每个单位 1/96 英寸)。 默认值为 PositiveInfinity 此值可以是任何大于等于 0.0 的值。 PositiveInfinity 也有效。

标识符字段

MaxHeightProperty

设置为 true 的元数据属性

AffectsMeasure

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

Double 值上的限制是由 ValidateValueCallback 机制强制实施的。 如果尝试设置一个无效值,则会引发运行时异常。

此示例直观地演示 Windows Presentation Foundation (WPF) 中与高度有关的四个属性之间的呈现行为差异。

FrameworkElement 类公开四个属性,用以描述元素的高度特征。 这四个属性可能会相互冲突,如果相互冲突,则按如下顺序确定优先级:MinHeight 值优先于 MaxHeight 值,后者又优先于 Height 值。 第四个属性 ActualHeight 是只读属性,它报告与布局进程的交互所确定的实际高度。

以下可扩展应用程序标记语言 (XAML) 示例绘制了一个 Rectangle 元素 (rect1),作为 Canvas 的子级。 可以使用一系列表示 MinHeightMaxHeightHeight 属性值的 ListBox 元素更改 Rectangle 的高度属性。 通过这种方式,可以直观地显示每个属性的优先级。


<Canvas Height="200" MinWidth="200" Background="#b0c4de" VerticalAlignment="Top"  HorizontalAlignment="Center" Name="myCanvas" Margin="0,0,0,50">
    <Rectangle HorizontalAlignment="Center" Canvas.Top="50" Canvas.Left="50"  Name="rect1" Fill="#4682b4" Height="100" Width="100"/>
</Canvas>


...


    <TextBlock Grid.Row="1" Grid.Column="0" Margin="10,0,0,0" TextWrapping="Wrap">Set the Rectangle Height:</TextBlock>
    <ListBox Grid.Column="1" Grid.Row="1" Margin="10,0,0,0" Height="50" Width="50" SelectionChanged="changeHeight">
      <ListBoxItem>25</ListBoxItem>
      <ListBoxItem>50</ListBoxItem>
      <ListBoxItem>75</ListBoxItem>
      <ListBoxItem>100</ListBoxItem>
      <ListBoxItem>125</ListBoxItem>
      <ListBoxItem>150</ListBoxItem>
      <ListBoxItem>175</ListBoxItem>
      <ListBoxItem>200</ListBoxItem>
    </ListBox>

	<TextBlock Grid.Row="1" Grid.Column="2" Margin="10,0,0,0" TextWrapping="Wrap">Set the Rectangle MinHeight:</TextBlock>
    <ListBox Grid.Column="3" Grid.Row="1" Margin="10,0,0,0" Height="50" Width="50" SelectionChanged="changeMinHeight">
      <ListBoxItem>25</ListBoxItem>
      <ListBoxItem>50</ListBoxItem>
      <ListBoxItem>75</ListBoxItem>
      <ListBoxItem>100</ListBoxItem>
      <ListBoxItem>125</ListBoxItem>
      <ListBoxItem>150</ListBoxItem>
      <ListBoxItem>175</ListBoxItem>
      <ListBoxItem>200</ListBoxItem>
  </ListBox>      

    <TextBlock Grid.Row="1" Grid.Column="4" Margin="10,0,0,0" TextWrapping="Wrap">Set the Rectangle MaxHeight:</TextBlock>
    <ListBox Grid.Column="5" Grid.Row="1" Margin="10,0,0,0" Height="50" Width="50" SelectionChanged="changeMaxHeight">
      <ListBoxItem>25</ListBoxItem>
      <ListBoxItem>50</ListBoxItem>
      <ListBoxItem>75</ListBoxItem>
      <ListBoxItem>100</ListBoxItem>
      <ListBoxItem>125</ListBoxItem>
      <ListBoxItem>150</ListBoxItem>
      <ListBoxItem>175</ListBoxItem>
      <ListBoxItem>200</ListBoxItem> 
    </ListBox>


下面的代码隐藏示例处理 SelectionChanged 事件引发的事件。 每个处理程序均从 ListBox 获取输入,将该值作为 Double 来分析,并将该值应用于指定的与高度相关的属性。 高度值还可转换为字符串,并写入各种 TextBlock 元素(这些元素的定义未显示在所选 XAML 中)。


private void changeHeight(object sender, SelectionChangedEventArgs args)
{
    ListBoxItem li = ((sender as ListBox).SelectedItem as ListBoxItem);
    Double sz1 = Double.Parse(li.Content.ToString());
    rect1.Height = sz1;
    rect1.UpdateLayout();
    txt1.Text= "ActualHeight is set to " + rect1.ActualHeight;
    txt2.Text= "Height is set to " + rect1.Height;
    txt3.Text= "MinHeight is set to " + rect1.MinHeight;
    txt4.Text= "MaxHeight is set to " + rect1.MaxHeight;
}
private void changeMinHeight(object sender, SelectionChangedEventArgs args)
{
    ListBoxItem li = ((sender as ListBox).SelectedItem as ListBoxItem);
    Double sz1 = Double.Parse(li.Content.ToString());
    rect1.MinHeight = sz1;
    rect1.UpdateLayout();
    txt1.Text= "ActualHeight is set to " + rect1.ActualHeight;
    txt2.Text= "Height is set to " + rect1.Height;
    txt3.Text= "MinHeight is set to " + rect1.MinHeight;
    txt4.Text= "MaxHeight is set to " + rect1.MaxHeight;
}
private void changeMaxHeight(object sender, SelectionChangedEventArgs args)
{
    ListBoxItem li = ((sender as ListBox).SelectedItem as ListBoxItem);
    Double sz1 = Double.Parse(li.Content.ToString());
    rect1.MaxHeight = sz1;
    rect1.UpdateLayout();
    txt1.Text= "ActualHeight is set to " + rect1.ActualHeight;
    txt2.Text= "Height is set to " + rect1.Height;
    txt3.Text= "MinHeight is set to " + rect1.MinHeight;
    txt4.Text= "MaxHeight is set to " + rect1.MaxHeight;
}


有关完整示例,请参见 Height Properties Sample(高度属性示例)。

.NET Framework

受以下版本支持:4.5、4、3.5、3.0

.NET Framework Client Profile

受以下版本支持:4、3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(不支持服务器核心角色), Windows Server 2008 R2(支持带 SP1 或更高版本的服务器核心角色;不支持 Itanium)

并不是.NET Framework 对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求.

社区附加资源

添加
Microsoft 正在进行一项网上调查,以了解您对 MSDN 网站的意见。 如果您选择参加,我们将会在您离开 MSDN 网站时向您显示该网上调查。

是否要参加?
显示:
© 2014 Microsoft