예제 #1
0
        //============================================================
        //<T>展现纹理图片<T>
        //============================================================
        private void MaterialImage(FCfgFolder fol)
        {
            FDrMaterialGroup material = fol.Tag as FDrMaterialGroup;
            ListViewGroup    group    = new ListViewGroup();
            int n = 1;

            material.Open();
            foreach (FDrModelMaterialTexture mat in material.Textures)
            {
                if (null != mat && mat.Texture != null)
                {
                    string path = mat.Texture.Directory + "\\icon\\" + mat.SourceType + ".jpg";
                    if (RFile.Exists(path))
                    {
                        Bitmap bit = new Bitmap(path);
                        imageList.Images.Add(bit);
                        int count = imageList.Images.Count;
                        imageList.Images.SetKeyName(count - 1, mat.SourceType + ".jpg");
                        n++;
                    }
                }
            }
            group.Tag  = material;
            group.Name = fol.Label + "-" + n.ToString();
            listView1.Groups.Add(group);
        }
예제 #2
0
        //============================================================
        // <T>加载材质信息。</T>
        //
        // @prama material 材质名称
        //============================================================
        public void LoadMaterialGroup(FDrMaterialGroup materialGroup)
        {
            _loading = true;
            // 打开材质
            materialGroup.Open();
            _materialGroup = materialGroup;
            // 建立材质集合
            lbxThemes.Items.Clear();
            foreach (FDrMaterial material in materialGroup.Materials)
            {
                lbxThemes.Items.Add(material.ThemeCode);
            }
            lbxThemes.SelectedIndex = 0;
            // 设置属性
            qdrMaterialGroup.LoadMaterialGroup(materialGroup);
            qdrMaterialInfo.LoadMaterial(materialGroup.Materials.First);
            // 建立列表
            FDrMaterialTexture firstTexture = null;

            qgvTextures.Rows.Clear();
            foreach (FDrMaterialTexture texture in materialGroup.Textures)
            {
                // 创建数据行
                DataGridViewRow row = new DataGridViewRow();
                row.DefaultCellStyle.BackColor = Color.LightGreen;
                row.Tag = texture;
                // 创建类型单元格
                DataGridViewTextBoxCell cellType = new DataGridViewTextBoxCell();
                cellType.Value = texture.TypeName;
                row.Cells.Add(cellType);
                // 创建有效性单元格
                DataGridViewTextBoxCell cellValid = new DataGridViewTextBoxCell();
                cellValid.Value = texture.IsValid;
                row.Cells.Add(cellValid);
                // 创建来源单元格
                DataGridViewTextBoxCell cellSource = new DataGridViewTextBoxCell();
                cellSource.Value = texture.Source;
                row.Cells.Add(cellSource);
                // 创建来源类型单元格
                DataGridViewTextBoxCell cellSourceType = new DataGridViewTextBoxCell();
                cellSourceType.Value = texture.TypeName;
                row.Cells.Add(cellSourceType);
                // 创建来源索引单元格
                DataGridViewTextBoxCell cellSourceIndex = new DataGridViewTextBoxCell();
                cellSourceIndex.Value = texture.SourceIndex;
                row.Cells.Add(cellSourceIndex);
                // 创建尺寸单元格
                DataGridViewTextBoxCell cellSize = new DataGridViewTextBoxCell();
                if (null != texture.Bitmap)
                {
                    cellSize.Value = texture.Bitmap.Size.Width + "X" + texture.Bitmap.Size.Height;
                }
                row.Cells.Add(cellSize);
                // 创建数据长度单元格
                DataGridViewTextBoxCell cellLength = new DataGridViewTextBoxCell();
                if (null != texture.Bitmap)
                {
                    cellLength.Value = texture.Bitmap.Length;
                }
                row.Cells.Add(cellLength);
                qgvTextures.Rows.Add(row);
                // 设置首行
                if (null == firstTexture)
                {
                    row.Selected = true;
                    firstTexture = texture;
                }
            }
            // 默认显示第一张图片
            if (null != firstTexture)
            {
                qpbViewer.LoadBitmap(firstTexture.Bitmap.Image.Native);
            }
            else
            {
                qpbViewer.Clear();
            }
            _loading = false;
        }