.Stylx类型的文件即为样式库文件,保存了符号样式。
1、根据名字获取当前工程中的style
//获取当前工程中的所有style
var ProjectStyles = Project.Current.GetItems<StyleProjectItem>();
//根据名字找出指定的style
StyleProjectItem style = ProjectStyles.First(x => x.Name == "村规样式");
2、新建style
// 创建.stylx文件,注意后缀
string styleToCreate = @"C:\Temp\NewStyle.stylx";
StyleHelper.CreateStyle(Project.Current, styleToCreate);
3、加载style到当前工程
public Task AddStyleItemAsync(StyleProjectItem style, StyleItem itemToAdd)
{
return QueuedTask.Run(() =>
{
//添加StyleItem
style.AddItem(itemToAdd);
});
}
4、从工程中移除style
public Task AddStyleItemAsync(StyleProjectItem style, StyleItem itemToAdd)
{
return QueuedTask.Run(() =>
{
//移除StyleItem
style.RemoveStyle(itemToAdd);
});
}
5、给style添加符号项
public Task AddStyleItemAsync(StyleProjectItem style, StyleItem itemToAdd)
{
return QueuedTask.Run(() =>
{
//添加StyleItem
style.AddItem(itemToAdd);
});
}
6、从style中移除符号项
public Task RemoveStyleItemAsync(StyleProjectItem style, StyleProjectItem style, StyleItem itemToRemove)
{
return QueuedTask.Run(() =>
{
//移除StyleItem
style.RemoveItem(itemToRemove);
});
}
7、确定style是否与当前版本匹配
public async Task<bool> IsCurrent(string stylePath)
{
//加载style
StyleHelper.AddStyle(Project.Current, stylePath));
StyleProjectItem style = Project.Current.GetItems<StyleProjectItem>().First(x => x.Path == stylePath);
//获取目标属性IsCurrent
return style.IsCurrent;
}
8、升级style
public async Task<bool> UpgradeStyleAsync(string stylePath)
{
//加载style
StyleHelper.AddStyle(Project.Current, stylePath));
StyleProjectItem style = Project.Current.GetItems<StyleProjectItem>().First(x => x.Path == stylePath);
// 如果是可以升级的话
if (style.CanUpgrade)
{
StyleHelper.UpgradeStyle(style));
}
}
9、在style中搜索特定的Item
//根据关键词搜索特定的SymbolStyleItem
SymbolStyleItem item = (SymbolStyleItem)style.LookupItem(StyleItemType.PointSymbol, key);
//点符号
return style.SearchSymbols(StyleItemType.PointSymbol, searchString);
//线符号
return style.SearchSymbols(StyleItemType.LineSymbol, searchString);
//面符号
return await style.SearchSymbols(StyleItemType.PolygonSymbol, searchString);
//颜色
return style.SearchColors(searchString);
//色带
return await style.SearchColorRamps(searchString);
//指北针
return style.SearchNorthArrows(searchString);
//比例尺
return style.SearchScaleBars(searchString);
//图例
return style.SearchLegends(searchString);