在模拟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的源代码如下:
关于葡萄城
葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。