符号编辑器,提供了进行符号制作与编辑的界面环境,根据所编辑的符号类型(点符号、线型符号、填充符号、三维点符号、三维线型符号)的不同,符号编辑器的状态也相应的有:点符号编辑器、线型符号编辑器、填充符号编辑器、三维点符号编辑器、三维线型符号编辑器。

命名空间:  SuperMap.UI
程序集:  SuperMap.UI.Controls (in SuperMap.UI.Controls)
版本: dll

语法

C#
[ToolboxBitmapAttribute(typeof(SymbolEditDialog))]
public class SymbolEditDialog : Component

备注

在打开符号编辑器时,需要指定需要编辑的符号,符号编辑器会根据所指定的符号类型,打开相应状态的符号编辑器;如果需要编辑的符号为二维点符号,则打开点符号编辑器;如果需要编辑的符号为三维点符号,则打开三维点符号编辑器;如果需要编辑的符号为二维线型符号,则打开线型符号编辑器;如果需要编辑的符号为三维线型符号,则打开三维线型符号编辑器;如果需要编辑的符号为填充符号,则打开填充符号编辑器。

关于符号编辑器的使用,请参见帮助文档中的《控件使用指南》部分:点符号编辑器线型符号编辑器器三维线型符号编辑器器填充符号编辑器,关于三维点符号编辑器的使用,参见:新建点符号——新建一个三维点符号

示例

以下代码示范了如何打开符号编辑器,并对指定的点符号进行编辑,即打开点符号编辑器。下列代码要求已经创建了一个 Workspace 实例,实例的名称(name)为:workspace。

CopyC#
// 获取工作空间的资源集合。            
Resources resources = workspace.Resources;

// 获取资源集合中点符号库中的一个点符号(根组下的第一个点符号)。
Symbol symbol = resources.MarkerLibrary.RootGroup[0];

// 打开点符号编辑器。
SuperMap.UI.SymbolEditDialog.ShowDialog(symbol, resources);

// 在打开的点符号编辑器中,编辑当前点符号,然后单击“确定”按钮,将编辑结果保存到当前点符号库中。

// 从当前点符号库中再次获取根组下的第一个点符号,即上述编辑的点符号。
Symbol symbolAferEdit = resources.MarkerLibrary.RootGroup[0];

// 再次打开点符号编辑器,查看编辑后的点符号,也可以继续进行编辑。
SuperMap.UI.SymbolEditDialog.ShowDialog(symbolAferEdit, resources,"编辑后的点符号");

// 要将符号编辑结果最终保存下来,需要将符号所在的符号库进行保存,
// 可以通过保存符号库所在的工作空间或者导出符号库文件,实现符号库的保存。

以下代码示范了如何打开符号编辑器,并对指定的线型符号进行编辑,即打开线型符号编辑器。

CopyC#
// 新建一个资源库对象。
Resources resources = new Resources();

// 将 SuperMap 线型符号库文件导入到资源库中的线型符号库,
// 即资源库中的线型符号库资源为指定的线型符号库文件所存储的线型符号库内容。
resources.LineLibrary.FromFile(@"..\Data\LineLibrary.lsl");

// 在线型符号库中找到符号编号为962025的线型符号作为需要编辑的符号。
Symbol symbol = resources.LineLibrary.FindSymbol(962025);

// 在线型符号编辑器中打开需要编辑的线型符号,对该线型符号进行编辑操作。
SuperMap.UI.SymbolEditDialog.ShowDialog(symbol, resources);

以下代码示范了如何打开符号编辑器,并对指定的填充符号进行编辑,即打开填充符号编辑器。

CopyC#
// 新建一个资源库对象。
Resources resources = new Resources();

// 将 SuperMap 线型符号库文件导入到资源库中的线型符号库,
// 即资源库中的线型符号库资源为指定的线型符号库文件所存储的线型符号库内容。
resources.FillLibrary.FromFile(@"..\Data\FillLibrary.bru");

// 在线型符号库中找到符号编号为962025的线型符号作为需要编辑的符号。
Symbol symbol = resources.FillLibrary.FindSymbol(99);

// 在线型符号编辑器中打开需要编辑的线型符号,对该线型符号进行编辑操作。
SuperMap.UI.SymbolEditDialog.ShowDialog(symbol, resources);

以下代码示范了如何打开符号编辑器,并对指定的三维线型符号进行编辑,即打开三维线型符号编辑器。

CopyC#
// 新建一个资源库对象。
Resources resources = new Resources();

// 将 SuperMap 线型符号库文件导入到资源库中的线型符号库,
// 即资源库中的线型符号库资源为指定的线型符号库文件所存储的线型符号库内容。
resources.LineLibrary.FromFile(@"..\Data\LineLibrary.lsl");

// 在线型符号库中找到符号名称为“Line3D”的线型符号作为需要编辑的符号。
Symbol symbol = resources.LineLibrary.FindSymbol("Line3D");

// 构造一个新的 SymbolEditDialog 对象。 
SuperMap.UI.SymbolEditDialog symbolEditDialog = new SuperMap.UI.SymbolEditDialog();

// 设置在符号编辑器中打开进行编辑的符号。
symbolEditDialog.Symbol = symbol;
// 设置需要编辑的符号所在的资源库。
symbolEditDialog.Resources = resources;
// 设置符号编辑器对话框的标题栏所显示的文本内容。
symbolEditDialog.Title = "编辑 Line3D 三维线型符号";

// 打开三维符号编辑器。
symbolEditDialog.ShowDialog();

// 在符号编辑器中对打开的三维符号进行编辑操作......

以下代码示范了如何打开符号编辑器,并对新建的三维点符号进行编辑,即打开三维点符号编辑器。

CopyC#
// 新建一个资源库对象。
Resources resources = new Resources();

// 获得一个三维模型,作为三维点符号所使用的模型。
GeoModel geoModel = new GeoModel();
geoModel.FromFile(@"..\Data\fly\airplane.sgm");

// 新建一个三维点符号,并设置三维点符号的三维模型内容。
Bitmap bitmap = Bitmap.FromFile(@"..\Data\fly\airplane.bmp") as Bitmap;
SymbolMarker3D symbolMarker3D = new SymbolMarker3D(bitmap, geoModel);
symbolMarker3D.Name = "Marker3D";            

// 打开三维点符号编辑器,可以对指定的三维点符号进行编辑操作。
Symbol symbol = SuperMap.UI.SymbolEditDialog.ShowDialog(symbolMarker3D, resources);

// 将新建的并通过三维点符号编辑器编辑后的三维点符号添加到资源库中。
if (symbol != null)
{
    resources.MarkerLibrary.Add(symbol);
}

继承层次

System..::.Object
  System..::.MarshalByRefObject
    System.ComponentModel..::.Component
      SuperMap.UI..::.SymbolEditDialog

请参见