zoukankan      html  css  js  c++  java
  • 设定Grid行或列的尺寸

    和普通UI元素可以设定Height和Width属性不同,RowDefinition类和ColumnDefinition类中相应的属性的类型不是Double,而是System.Window.GridLength。Grid调整Grid行列尺寸的方法有如下三种:

    绝对尺寸  把Grid行列大小尺寸设为一个数值,这时Grid的行列尺寸不会随着其中UI元素的大小进行自动调整。

    自动尺寸  把Grid的Height和Width设为Auto。这时WPF会根据Grid中的UI元素自动调整其行列的高度或宽度。其原则为:Grid的行高度由该行中元素的最大高度决定,Grid的列宽度由该列中元素的最大宽度决定。使用这种方法可以保证Grid中的UI元素不会只显示一部分。

    按比例分割行列尺寸  把有限的平面大小按照一定的比例划分行的高度或列的宽度,其比例的数值可以是浮点数。如第一列的宽度设为"*"、第二列的宽度设为"1.2*"、第三列的宽度设为"2.5*",等等。

    在C#中设定行列尺寸的语法:

    RowDefinition rowdef = new RowDefinition();   
    rowdef.Height = new GridLength(100, GridUnitType.Pixel);  (绝对尺寸)   
    rowdef.Height = GridLength.Auto; (自动尺寸)   
    rowdef.Height = new GridLength (2,GridUnitType.Star);(按比例尺寸)  
    

    WPF默认设置行的高度和列的宽度为1个*,即每行或每列的大小一样。

    在XAML中设定行列尺寸的语法:

    <RowDefinition Height="100"/>  (绝对尺寸)   
    <RowDefinition Height ="Auto"> (自动尺寸)   
    <RowDefinition Height = "2*">  (按比例尺寸)  
    

    在设定Grid行列的尺寸时,还有一对重要参数:最小/最大宽度(MinWidth和MaxWidth);最大/最小高度(MinHeight和MaxHeight);当用户设定某个单元的MinWidth和MaxWidth值后,Grid允许该单元宽度的变化范围为MinWidth和MaxWidth之间。若用户的设定值大于MaxWidth, Grid用MaxWidth作为该单元的宽度;若用户的设定值小于MinWidth, Grid用MinWidth作为该单元的宽度。对于高度来说,上述规则也适用。

    当Grid行列大小设为按比例排版时,WPF划分区域的方法为:

    若行的高度都为*,就按Grid中的行数来计算出每行的高度。如整个Grid区域的高度是100,你要显示10行,那么每行的高度就是10(100/10)。

    若Grid中有两行,第一行的高度设为*,第二行的高度设为1.5*,而整个Grid区域的高度仍为100,那么第一行的高度就是100/2.5= 40;第二行的高度就是100/2.5 * 1.5 = 60。

    上述计算每行高度的规则也适用于计算每列的宽度,实际上在使用按比例分割行列尺寸时,行的高度或列的宽度的绝对数值并不重要,重要的是其相对比例。

  • 相关阅读:
    leetcode931
    leetcode1289
    leetcode1286
    poj Meteor Shower
    noip杂题题解
    noip2007部分题
    NOIP Mayan游戏
    某模拟题题解
    codevs 1423 骑士
    noip 邮票面值设计
  • 原文地址:https://www.cnblogs.com/swarb/p/9924406.html
Copyright © 2011-2022 走看看