以前進行符化的時候一般都是自定義Symbol,或者使用SymbologyControl進行選擇,由于實際需要,我們來讀取一下樣式管理器中的樣式。在ArcMap中打開如下:style下有很多樣式類,每個類下面有各種樣式。

讀取Style符号庫樣式的步驟如下:
第二步,建立樣式管理集工具StyleGallery,并指定樣式檔案位置;
第三步,周遊擷取樣式檔案類,即樣式管理器ESRI.Style下的22個類,這裡我們要擷取名稱為"Fill Symbols";
第四步,周遊樣式檔案類下名為"10% Simple hatch"樣式檔案,并傳回為Symbol。
第五步,符号化要素圖層:将Symbol賦給SimpleRenderer的Symbol屬性,将圖層轉為GeoFeatureLayer,将SimpleRenderer賦給GeoFeatureLayer的Renderer屬性,在Map中加載顯示GeoFeatureLayer。
/// <summary>
/// 從Style符号庫擷取指定的符号
/// </summary>
/// <param name="sServerStylePath">符号庫路徑</param>
/// <param name="sGalleryClassName">樣式類名稱</param>
/// <param name="symbolName">樣式名稱</param>
/// <returns>Symbol</returns>
public ISymbol GetSymbol(string sServerStylePath, string sGalleryClassName, string symbolName)
{
//1.加載樣式檔案
ISymbol pSymbol = null;
IStyleGallery pStyleGaller = new ServerStyleGallery();//樣式管理集工具
IStyleGalleryStorage pStyleGalleryStorage = pStyleGaller as IStyleGalleryStorage;//樣式檔案管理
pStyleGalleryStorage.TargetFile = sServerStylePath;//serverStylePath為一字元串型,表示ServerStyle檔案位置
//2.擷取樣式子類
//可通過周遊樣式檔案裡的子類,然後找到與目标子類名稱相同的樣式子類即可
IStyleGalleryClass pStyleGalleryClass = null;//樣式子類對象
for (int i = 0; i < pStyleGaller.ClassCount; i++)
pStyleGalleryClass = pStyleGaller.get_Class(i);
if (pStyleGalleryClass.Name != sGalleryClassName)
continue;
IEnumStyleGalleryItem pEnumSyleGalleryItem = pStyleGaller.get_Items(sGalleryClassName, sServerStylePath, "");//擷取樣式子類
pEnumSyleGalleryItem.Reset();
//3.周遊pEnumSyleGalleryItem
IStyleGalleryItem pStyleGallerItem = null;
pStyleGallerItem = pEnumSyleGalleryItem.Next();
while (pStyleGallerItem != null)
Console.WriteLine(pStyleGallerItem.Name);
if (pStyleGallerItem.Name == symbolName)
//4.擷取符号
pSymbol = pStyleGallerItem.Item as ISymbol;
break;
}
return pSymbol;
調用:
GetSymbol(ESRI.ArcGIS.RuntimeManager.ActiveRuntime.Path + @"\\Styles\\ESRI.ServerStyle", "Fill Symbols", "10% Simple hatch");
當然,使用SymbologyControl來進行互動體驗效果會更好!
本文參考:
<a href="http://blog.csdn.net/rrrrssss00/article/details/6167497">http://blog.csdn.net/rrrrssss00/article/details/6167497#</a>
<a href="http://blog.sina.com.cn/s/blog_694deb730100nhna.html">http://blog.sina.com.cn/s/blog_694deb730100nhna.html</a>