此代码在 MapXtreme 2004 6.2 版本下通过
// 创建一个图例对象,其 Size 参数意义不大,因为通常情况下 legend.Format.AutoSizeLegend 属性为 true,这意味着程序会自动计算大小
Legend legend = mapControl1.Map.Legends.CreateLegend("Name", "Alias", new Size(5,5));
legend.Border = true;
// 创建一个图例框架,如果不想在调用主题图的 RebuildTheme 方法时改变图例的大小,需要将 legendFrame.AutoRecalculate 属性设为 false
ThemeLegendFrame legendFrame = LegendFrameFactory.CreateThemeLegendFrame(bar);
//legendFrame.AutoRecalculate = false;
legend.Frames.Append(legendFrame);
// 将图例加入到地图的装饰集合,可以通过创建图例对象时的别名访问它,如:mapControl1.Map.Adornments["Alias"] as Legend
mapControl1.Map.Adornments.Append(legend);
// 调整图例显示位置为右下角
SDrawing.Point pt = new System.Drawing.Point(0, 0);
pt.X = mapControl1.Size.Width - legend.Size.Width;
pt.Y = mapControl1.Size.Height - legend.Size.Height;
legend.Location = pt;
(注: bar 是已经创建的 BarTheme 对象)