arcengine TOC图例符号转换到ListView

 

TOC图例符号转换到ListView

 

 //符号转换
Bitmap PreviewSymbol(IStyleGalleryClass pStyleGalleryClass, object galleryItem, int imgWidth, int imgHeight)
        {
            Bitmap bitmap = new Bitmap(imgWidth, imgHeight);
            Graphics graphics = Graphics.FromImage(bitmap);
            tagRECT rect = new tagRECT();
            rect.right = bitmap.Width;
            rect.bottom = bitmap.Height;
            System.IntPtr hdc = graphics.GetHdc();
            pStyleGalleryClass.Preview(galleryItem, hdc.ToInt32(), ref rect);
            graphics.ReleaseHdc(hdc);
            graphics.Dispose();
            return bitmap;
        }

//遍历渲染,逐个转换符号
ILayer pLayer = axMapControl1.get_Layer(0);
            IGeoFeatureLayer pGeoFeatureLayer = pLayer as IGeoFeatureLayer;
            IFeatureRenderer pFeatureRenderer = pGeoFeatureLayer.Renderer;
            if(pFeatureRenderer is IUniqueValueRenderer)
             {
                IStyleGalleryClass pStyleGalleryClass = new FillSymbolStyleGalleryClassClass();//我这里用面测试的,改造时需要动态的使用
                IUniqueValueRenderer pUniqueValueRenderer = pFeatureRenderer as IUniqueValueRenderer;
                ISymbol pSymbol = null;
                ListViewItem listViewItem;
                Image image;
                string value;
                imageList1.Images.Clear();
                listView1.Items.Clear();
                for (int i = 0; i < pUniqueValueRenderer.ValueCount; i++)
                {
                    listViewItem = new ListViewItem();
                    value = pUniqueValueRenderer.get_Value(i);
                    pSymbol = pUniqueValueRenderer.get_Symbol(value);
                    image = PreviewSymbol(pStyleGalleryClass, pSymbol, imageList1.ImageSize.Width, imageList1.ImageSize.Height);
                    imageList1.Images.Add(value,image);
                    listViewItem.ImageKey = value;
                    listViewItem.Text = value;
                    listViewItem.SubItems.Add(value);
                    listView1.Items.Add(listViewItem);
                }
            }
            else
            {
                MessageBox.Show("不是楼主想要的东东。");
            }

 来自:http://www.cnblogs.com/lauer0246/archive/2008/10/17/1312369.html


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部