首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式应用MapXtreme主题

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

Stack Overflow用户
提问于 2012-02-09 08:22:44
回答 1查看 526关注 0票数 0

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

目前,我正在尝试以编程方式将IndividualValueTheme应用于FeatureLayer。我可以应用一个标准的默认主题,我也可以显示一个ModifyIndValueThemeDlg,让用户更改主题。然而,我想要做的是在没有用户干预的情况下将我自己的主题应用到图层上。

下面的代码试图做到这一点,但导致图层显示默认的IndividualValueTheme (即不是我的样式)

任何帮助都将不胜感激

代码语言:javascript
复制
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)
    };
}
EN

回答 1

Stack Overflow用户

发布于 2012-10-04 14:49:02

仅对于单个主题,重新计算样式会导致通过存储箱重新生成第一个主题result.After用户更改样式,您无需再次重新计算它们。

简而言之,只需删除这一行,让神奇的事情发生

代码语言:javascript
复制
HarvOpsTheme.RecomputeStyles();

诚挚的问候

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9203731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档