Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gis 如何以编程方式应用MapXtreme主题_Gis_Mapxtreme - Fatal编程技术网

Gis 如何以编程方式应用MapXtreme主题

Gis 如何以编程方式应用MapXtreme主题,gis,mapxtreme,Gis,Mapxtreme,我使用MapXtreme 7.0维护一个桌面应用程序,并且 很难找到很多文档或有用的示例(我确实有 安装光盘上的PDF、样本等) 目前我正在尝试编程应用一个独立的价值主题 到一个特征层。我可以应用一个标准的默认主题,我也可以 显示ModifyIndValueThemeDlg并允许用户更改主题。 然而,我想做的是将我自己的主题应用到图层上,而不是 用户干预 下面的代码尝试这样做,但结果是 使用默认的IndividualValueTheme(即不使用我的样式)显示 任何帮助都将不胜感激 void A

我使用MapXtreme 7.0维护一个桌面应用程序,并且 很难找到很多文档或有用的示例(我确实有 安装光盘上的PDF、样本等)

目前我正在尝试编程应用一个独立的价值主题 到一个特征层。我可以应用一个标准的默认主题,我也可以 显示ModifyIndValueThemeDlg并允许用户更改主题。 然而,我想做的是将我自己的主题应用到图层上,而不是 用户干预

下面的代码尝试这样做,但结果是 使用默认的IndividualValueTheme(即不使用我的样式)显示

任何帮助都将不胜感激

void ApplyTheme(FeatureLayer lyr)
{
    if (lyr.Modifiers.Contains(HarvOpsTheme) || lyr.Modifiers.Contains(HarvOpsRangedTheme))
        return;
    HarvOpsTheme = new IndividualValueTheme(lyr, "iOperationType","HarvOpsTheme");
    lyr.Modifiers.Append(HarvOpsTheme);
    HarvOpsTheme.Bins[0].Style.ApplyStyle(GetHollowAreaStyle(Color.FromArgb(255, 255, 0)));
    HarvOpsTheme.Bins[1].Style.ApplyStyle(GetHollowAreaStyle(Color.FromArgb(0, 255, 0)));
    HarvOpsTheme.Bins[2].Style.ApplyStyle(GetHollowAreaStyle(Color.FromArgb(128, 128, 0)));
    HarvOpsTheme.Bins[3].Style.ApplyStyle(GetHollowAreaStyle(Color.FromArgb(192, 128, 0)));
    HarvOpsTheme.Bins[4].Style.ApplyStyle(GetHollowAreaStyle(Color.FromArgb(0, 128, 0)));
    HarvOpsTheme.Bins[5].Style.ApplyStyle(GetHollowAreaStyle(Color.FromArgb(0, 205, 128)));
    HarvOpsTheme.Bins[6].Style.ApplyStyle(GetHollowAreaStyle(Color.FromArgb(255, 0, 0)));

    HarvOpsTheme.Apply(HarvOpsTheme);
    HarvOpsTheme.RecomputeStyles();

    lyr.Invalidate();
}

AreaStyle GetHollowAreaStyle(Color color)
{
    return new AreaStyle
    {
        Interior = StockStyles.HollowFillStyle(),
        Border = new SimpleLineStyle(new LineWidth(1,LineWidthUnit.Pixel), 1, color)
    };
}

仅对于单个主题,重新计算样式会导致重新生成第一个主题结果。用户通过[Bins]更改样式后,无需再次重新计算

简言之,只需删除该行,让魔术发生

HarvOpsTheme.RecomputeStyles();

致以最诚挚的问候

这可能是我代码中的一个bug,但无论有没有这一行,都不会有“魔力”发生。谢天谢地,MapXtreme现在几乎是历史性的了。我同意MapXtreme从未记录过的编码风格的历史部分,以及您一年多后的回复。