在模拟Windows 8样式布局时,C1TileControl提供多种选项,并根据选择内容自适应完成界面排布。这样就可以按组为单位自动平铺排列,设置任意尺寸。也可以使用停靠、堆叠或嵌套面板,并设置文本元素以及图像。
本文就介绍如何用C1TilleControl创建具有Window8风格的文档浏览应用程序。
1.以组为单位平铺布局
通过TileControl.Groups.Add可以为TileControl添加不同的分组,Tile平铺贴片就放在不同的组里,以组的形式展示。本文Demo里创建不同类型的组,代码如下所示:
Group GetDriveGroup(DriveType driveType) { string groupName = driveType.ToString(); foreach (Group group in itemTiles.Groups) { if (group.Name == groupName) { return group; } } Group newGroup = new Group(); switch (driveType) { case DriveType.CDRom: newGroup.Text = "CD/DVD"; break; case DriveType.Fixed: newGroup.Text = "Fixed Disks"; break; case DriveType.Network: newGroup.Text = "Network Drives"; break; case DriveType.Ram: newGroup.Text = "RAM Disks"; break; case DriveType.Removable: newGroup.Text = "Removable Devices"; break; default: newGroup.Text = "Misc"; break; } itemTiles.Groups.Add(newGroup); newGroup.Name = groupName; return newGroup; }
2.创建贴片
在第一步里TileControl已经添加好了分组,在这里,需要创建贴片,并将不同的Tile贴片放入相应的组中,可以选择垂直或是水平的堆叠,而且通过Tile.Image属性添加图像,具体代码如下:
DriveType dt = drive.DriveType; Group group = GetDriveGroup(dt); Tile tile = new Tile(); switch (dt) { case DriveType.CDRom: tile.Image = Title_FileExplorer.Properties.Resources.mediaDrive; break; case DriveType.Fixed: tile.Image = Title_FileExplorer.Properties.Resources.hardDrive; break; case DriveType.Network: tile.Image = Title_FileExplorer.Properties.Resources.networkDrive; break; default: tile.Image = Title_FileExplorer.Properties.Resources.otherDrive; break; } tile.HorizontalSize = 3; group.Tiles.Add(tile);
3.创建贴片模板
根本没有必要对每一个平铺贴片进行单独设计。可以创建一个或多个平铺模板,然后将这些模板通过TileControl.Templates.Add添加到TileControl,最后将这些模板与贴片通过Tile.Template属性相关联起来。贴片可以为模板提供数据,如字符串、颜色和图像。将一个模板与多个平铺贴片相关联,或为一个单一的平铺贴片切换模板。具体相关代码如下:
private C1.Win.C1Tile.Template tempDrive = new C1.Win.C1Tile.Template(); private C1.Win.C1Tile.C1TileControl itemTiles = new C1.Win.C1Tile.C1TileControl(); this.itemTiles.Templates.Add(this.tempDrive); this.itemTiles.BackColor = System.Drawing.Color.Gainsboro; this.itemTiles.CellHeight = 70; this.itemTiles.CellWidth = 70; Tile tile = new Tile(); folderGroup.Tiles.Add(tile); tile.Template = tempFolder;
最后运行本文最后附件的Demo,用C1TilleControl创建具有Window8风格的文档浏览应用程序如下图所示:
本文Demo的源代码如下: