用C1TileControl模拟Window8风格的文档浏览应用

发布时间:2014/05/20 00:05 发布者:Alice

返回博客中心

在模拟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风格的文档浏览应用程序如下图所示:

tilecontrol-fileexplorer

 

本文Demo的源代码如下:

C1TileControl.7z (766.42 kb)


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网