WPF 控件专题 UniformGrid 控件详解

1、UniformGrid 介绍
    官方释义:提供一种在网格(网格中的所有单元格都具有相同的大小)中排列内容的方法。

**************************************************************************************************************

2、UniformGrid 常用的属性

    Margin:获取或设置元素的外边距。

    Name:元素的标识名称;

    Opacity:透明度

    Width/Height:宽度和高度;

    Visibility:该元素可见性;

    Rows:获取或设置网格中的行数;

    Columns:获取或设置网格中的列数;

    FirstColumn    获取或设置网格第一行中前导空白单元格的数量,必须小于属性的值 Columns;

    方法:

    ArrangeOverride(Size):通过在所有子元素之间平均分配空间来定义 UniformGrid 的布局,或者说是获取或设置网格中的列数。

    MeasureOverride(Size):通过测量所有子元素计算 UniformGrid 的期望大小。

**************************************************************************************************************

3、具体示例

<UniformGrid Columns="3" Rows="3" FirstColumn="0">
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
    <!--第十张图像超出行列范围,故不显示,若图像少于行列的总数,则留空白区域-->
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
</UniformGrid>

<!--不设置行列,自动缩放填充-->
<UniformGrid FirstColumn="0">
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
	<Image Margin="2" Source="./huahua.png" Stretch="Fill"/>
</UniformGrid>

通过后台代码创建也可以实现,接下来看看示例:

public MainWindow()
{
	InitializeComponent();
	//引用命名空间:using System.Windows.Controls.Primitives;
	UniformGrid uniformGrid = new UniformGrid();
	uniformGrid.Columns = 4;
	uniformGrid.Rows = 4;
	uniformGrid.FirstColumn = 0;

	for (int i = 1; i < 15; i++)
	{
		Image image = new Image();
		image.Source = new BitmapImage(new Uri(@"huahua.png", UriKind.Relative));
		image.Stretch = Stretch.Fill;
		image.Margin = new Thickness(2);
		image.Name = "image" + i;
		uniformGrid.Children.Add(image);
	}
	((this as Window).Content as Grid).Children.Add(uniformGrid);
}

**************************************************************************************************************

4、效果图

设置行列属性为3行3列,运行后只显示9张图像,第十张图像是被隐藏的;

不设置行列属性,则自动填充效果图;

通过后台代码创建效果图;

**************************************************************************************************************

5、总结和扩展

    UniformGrid 相当于简化版本的Grid,也属于布局控件的一种;

    对于 Grid 的属性 Grid.Row 、Grid.Column 和 Grid.RowSpan 、Grid.ColumnSpan 用在 UniformGrid 上会没有任何的效果(可以写上去,因为是附加属性);

**************************************************************************************************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值