zoukankan      html  css  js  c++  java
  • 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("不是楼主想要的东东。");
                }

  • 相关阅读:
    快速创建jsp页面的方法
    Webstorm的一些常用快捷键
    eclipse 怎么在new菜单里添加JSP file选项?
    人生最重要的时候,从30岁到35岁:为生命多积累一些厚度
    android 生命周期四代码
    android WebView onJsAler onJsC…
    android java js 回调 真心好用
    linux下dlopen的使用
    android ndk jni 实例1
    android 退出程序 结束线程
  • 原文地址:https://www.cnblogs.com/lauer0246/p/1312369.html
Copyright © 2011-2022 走看看