zoukankan      html  css  js  c++  java
  • WPF布局控件常用属性介绍

    WPF布局控件常用属性介绍

    其它 | 作者:慧都控件网 | 2011-04-06 13:41:57| 阅读 0次 有用 (0) 评论 (0)


     
    概述:WPF布局控件都是派生自System.Windows.Controls.Panel抽象类的面板,Panel类继承自 FrameworkElement,Panel类本身并没有什么特别的,但是WPF中提供了许多用于布局的控件都继承自Panel类,如 StackPanel控件,WrapPanel,DockPanel,Grid,UniformGrid,Canvas等 。

      WPF布局控件都是派生自System.Windows.Controls.Panel抽象类的面板,Panel类继承自FrameworkElement,Panel类本身并没有什么特别的,但是WPF中提供了许多用于布局的控件都继承自Panel类,如StackPanel控件,WrapPanel,DockPanel,Grid,UniformGrid,Canvas等 。

      接下来对布局控件做简单介绍:

      1.StackPanel控件(将子元素排列成一行(可沿水平或垂直方向))

      <StackPanel Name="stackPanel1" >
             <Button Content="Button"  Name="button1"/>
             <Button Content="Button"  Name="button2" />
             <Button Content="Button"  Name="button3" />
             <Button Content="Button"  Name="button4" />
         </StackPanel>

      默认情况下StackPanel面板从上到下地排列元素,使每个元素的高度适合显示的内容,可以通过设置Orientation属性为Horizontal为水平

      在这个例子中所有的元素都被拉伸到StackPanel面板的整个宽度,这也是窗口的宽度,加宽窗口StackPanel也会变宽,并且按钮也会拉伸他们自己以适应自己宽度变化。

      StackPanel控件常见几个属性:

      (1)public HorizontalAlignment HorizontalAlignment { get; set; }

      (获取或设置在父元素(如面板或项控件)中构成此元素时应用于此元素的水平对齐特征),它是一个枚举值,默认情况下为Stretch完全充满整个容器。

      (2)public VerticalAlignment VerticalAlignment { get; set; }

      (获取或设置在父元素(如面板或项控件)中组合此元素时应用于此元素的垂直对齐特征。)默认情况下为Stretch

      类型:System.Windows.VerticalAlignment

      (3)public Thickness Margin { get; set; }(获取和设置元素的外边距)

      类型:System.Windows.Thickness

      提供元素的边距值。 默认值是所有属性都等于 0,默认的左,上,右,下。如果将Margin="15",这种设置将所有的边距都设置成相同的宽度15,margin="20,50"这种设法将左右外边距设置成20,上下50

      (4)Height设置元素的高度,另外两个MinHeight和WaxHeight分别为最小尺寸和最大尺寸,如果这三个值存在冲突,首先必须采用 MinHeight;然后采用 MaxHeight;最后,如果 Height 位于限制之内,则采用该值

      (5)Width同样和上面Height属性类似。

      所有的上面这些属性都是继承自FrameworkElement基类,所以在WPF中使用的所有图形元素都支持这些属性。

      2.WarpPanel面板和DockPanel面板

      WarpPanel:从左至右按顺序位置定位子元素,在包含框的边缘处将内容断开至下一行。

      可以通过 Orientation设置其排列方式,该控件主要用来控制用户界面布局的细节。

      DockPanel

     <DockPanel>
             <Button Content="Button" DockPanel.Dock="Left" />
             <Button Content="Button" DockPanel.Dock="Bottom"/>
             <Button Content="Button" DockPanel.Dock="Right"/>
             <Button Content="Button" DockPanel.Dock="Top" />
             <Button Content="Button"  />
         </DockPanel>

      可以通过上面四个附加属性来定义按钮位于DockPanel的那个位置。因为在WPF中很少单独的使用StackPanel,WrapPanel,DockPanel进行布局,他们通常用于布局用户界面的一部分,下面将介绍Grid面板

      3.Grid面板

      Grid面板是WPF中最强大的布局控件,是有行和列组成的网格,s类似于HTML中的table。

      Grid面板通过使用对象填充Grid.RowDefinitions和Grid.ColumnDefinitions集合的方式来创建列和行。

    <Grid x:Name="LayoutRoot" Background="DarkGray">
             <Grid.RowDefinitions>
                 <RowDefinition></RowDefinition>
                 <RowDefinition ></RowDefinition>
                 <RowDefinition></RowDefinition>
             </Grid.RowDefinitions>
             <Grid.ColumnDefinitions>
                 <ColumnDefinition></ColumnDefinition>
                 <ColumnDefinition ></ColumnDefinition>
             </Grid.ColumnDefinitions>

    </Grid>

      上面创建了个三行两列的表格。Grid表格中的所有行和列平均分配空间。

      在单元格中放置控件可以通过Row和Column附加属性来设置。

      Grid控件支持三种改变尺寸的方式:

      (1)<ColumnDefinition Width="100"></ColumnDefinition>绝对改变尺寸的方式,这种方式设置没有什么用途,不够灵活,难以处理文本的大小改变和包容器的大小改变。

      (2)<ColumnDefinition Width="Auto"></ColumnDefinition>自动改变尺寸,这种方式最有用。

      (3)<ColumnDefinition Width="*"></ColumnDefinition>按比例尺寸改变。

       Grid中使用RowSpan和Column这两个属性来跨行和跨列

  • 相关阅读:
    Matlab命令集常用字符串函数
    统计独立性和统计相关性
    查看solaris下硬盘的物理大小
    Perl命令行开关
    DateFormat.getDateInstance出现Unparseable date
    ActiveMQ 本地转本地再转远程的完整配置
    aspose.words 操作word生成试卷
    汇编in和out介绍
    eclipse开发国际化项目利器:MultiProperties
    RCP+GEF+界面开发(2)[eclipse插件配置LINK方法]
  • 原文地址:https://www.cnblogs.com/changbaishan/p/3960366.html
Copyright © 2011-2022 走看看