dotspatial - 如何从 DemoMap DotSpatial 程序中的插件访问地图控件
问题描述
我DotSpatial DemoMap
在我的应用程序中使用作为主要前端,并且我创建了许多插件以在启动时加载到 DemoMap 中并且它们正在工作。但是,我不太清楚如何允许我的自定义插件访问主地图控件。
我在DemoMap的主窗体中看到,有一个App.Map
属性作为主地图控件的句柄(对吗?),如果这是真的,那么我想我需要在启动时将它传递给每个插件?
最重要的是,允许从所有自定义插件在整个应用程序中访问主地图控件的最有效/最佳方式是什么?(我在 .Net 4.5.2 上使用 DotSpatial 2.0 库)
解决方案
通过属性派生Extension
并访问AppManger
-supplied 地图。App.Map
扩展(插件)可以通过App.Map
属性访问地图。任何派生自的类都可以访问它,Extension
因此不需要将其传递到插件中。允许您访问该属性的 AppManager 是通过 MEF 自动注入的。
这是一个示例扩展
public class SimpleMapPlugin : Extension
{
public SimpleMapPlugin()
{
// Access App.Map as needed.
}
}
推荐阅读
- docker - exec:“docker-runc”:在 $PATH 中找不到可执行文件:未知
- ios - 如何检查常量中的 Int 是否与 CountableClosedRange 中的 Int 匹配
- azure-cosmosdb - 确定 Cosmos DB NotFound 是否由于缺少集合与文档
- html - 如何水平对齐表格中的文本?
- angular5 - 如何在单击事件Angular5上显示组件选择器
- php - 验证嵌入式应用设置页面访问是否来自 PHP 中的 Shopify
- wpf - WPF 更改使用画布和路径创建的图标颜色
- c# - UserPrincipal 扩展返回计算机
- java - 如何从 Firebase 获取启用的登录方法?
- mysql - 如何使用vba连接mysql数据库?