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这两个属性来跨行和跨列
WPF布局控件常用属性介绍的更多相关文章
- WPF布局控件与子控件的HorizontalAlignment/VerticalAlignment属性之间的关系
WPF布局控件与子控件的HorizontalAlignment/VerticalAlignment属性之间的关系: 1.Canvas/WrapPanel控件: 其子控件的HorizontalAlign ...
- 【Android】7.1 布局控件常用的公共属性
分类:C#.Android.VS2015: 创建日期:2016-02-10 一.简介 Android应用程序中的布局控件都是容器控件,用于控制子元素的排列和放置方式.Android提供的布局控件有: ...
- wpf布局控件总结
首先要认识到wpf所有的布局控件都继承自Panel类,Panel类又继承自其他类.继承关系如下: 一.StackPanel布局面板 1.该面板在单行或者单列中以堆栈的形式放置其子元素. 默认情况下,S ...
- WPF 布局控件 之 DockPanel
DockPanel为容器控件 主要了解其Dock属性和LastChildFill属性的使用 一.LastChildFill="True" 时 代码: <DockPanel L ...
- WPF自学入门(二)WPF-XAML布局控件
上一篇介绍了xaml基本知识,我们已经知道了WPF简单的语法.那么接下来,我们要认识一下WPF的布局容器.布局容器可以使控件按照分类显示,我们一起来看看WPF里面可以使用哪些布局容器用来布局. 在WP ...
- WPF 基础 - 控件与布局
1. 前言 1. 数据驱动 UI WPF 是数据核心.主动的,UI 从属数据并表达数据.是被动的: 不再是 UI 驱动数据,而是数据驱动 UI: 2. 控件的定义 控件.数据内容.行为(控件响应用户操 ...
- 布局控件Grid
XAML概述 Silverlight的控件绘制是由XAML语言进行支持的.什么是XAML语言? 简单的说,XAML(Extensible Application Markup Language )是一 ...
- Expression Blend实例中文教程(3) - 布局控件快速入门Grid
上一篇对Blend 3开发界面进行了快速入门介绍,本篇将基于Blend 3介绍Silverlight控件.对于微软开发工具熟悉的朋友,相信您很快就熟悉Blend的开发界面和控件. XAML概述 Sil ...
- 创建 WPF 工具箱控件
创建 WPF 工具箱控件 WPF (Windows Presentation Framework) 工具箱控件模板允许您创建 WPF 控件,会自动添加到 工具箱 安装扩展的安装. 本主题演示如何使用模 ...
随机推荐
- Numba makes Python code fast
Numba: A High Performance Python Compiler http://numba.pydata.org/ 一行代码让python的运行速度提高100倍,你信吗?-聚能聊-云 ...
- PHP 防止恶意用户快速刷新页面
<?php /** * 防止快速刷新 * */ session_start(); header("Content-type:text/html;charset=utf-8") ...
- Career Planning:Developers Best Practices Tutorial
This small tutorial is based on my past 16+ years of experience in software development industry. I ...
- TI C66x DSP 系统events及其应用 - 5.7(IST)
当CPU開始处理一个中断(INT4~15)时,它将引用中断服务表(IST).IST是一个获取包括中断服务代码的包的表. IST包括16个连续的获取包.每个中断服务获取包(ISFP)包括最多14条指令( ...
- 在Web上运行Linux—js/linux模拟器
一个叫Fabrice Bellard 的程序员写了一段Javascript在Web浏览器中启动Linux(原网页,我把这个网页iframe在了下面),目前,你只能使用Firefox 4和Chrome ...
- 添加github ssh 公钥
1.在控制台输入命令: ssh-keygen -t rsa -C "github上的邮箱地址" 2.将公匙复制后添加到github网站: id_rsa.pub文件 3.测试是 ...
- composer 常用包管理工具
名称 用途说明 说明地址 mashape/unirest-php 简单易用的HTTP请求库 官网地址 guzzlehttp/guzzle 功能强大的HTTP请求库 文档 hassankhan/conf ...
- Windows Live Writer 网易博客配置
一.去官网下载 Windows Live Write 组件 二.配置,选中其它服务,然后会到如下界面 主要是这里经常不知道选择什么,容易忘记. 下拉框选中metaweblog API 类型,把这个地址 ...
- linux 查看tomcat 日志
tomcat 重启: cd /opt/appserver/apache-tomcat-/bin ./shutdown.sh -ef|grep tomcat kill - ./startup.sh 查看 ...
- xx-net***简明使用教程
简介 继psiphon3.lantern.shadowsocks后,翻 土啬 界就来个新角色:xx-net 这张图是.2016.8.30日Google最新的搜索结果,还是可以看出这款工具的火爆程度的, ...