0

アプリケーションのメイン フロントエンドとしてを使用してDotSpatial DemoMapいます。起動時に DemoMap に読み込まれるプラグインをいくつか作成しましたが、それらは機能しています。ただし、カスタム プラグインがメイン マップ コントロールにアクセスできるようにする方法がよくわかりません。

DemoMap のメイン フォームを見るとApp.Map、メイン マップ コントロールへのハンドルとしてプロパティがあります (そうですか?)。これが true の場合、開始時に各プラグインに渡す必要があると思いますか?

要するに、すべてのカスタム プラグインからアプリケーション全体でメイン マップ コントロールにアクセスできるようにするための最も効率的/最良の方法は何ですか? (.Net 4.5.2 で DotSpatial 2.0 ライブラリを使用しています)

4

1 に答える 1

0

プロパティを介して提供されたマップから派生しExtension、アクセスします。AppMangerApp.Map

拡張機能 (プラグイン) は、App.Mapプロパティを介してマップにアクセスできます。は派生元の任意のクラスからアクセスできるためExtension、プラグインに渡す必要はありません。そのプロパティにアクセスできるようにする AppManager は、MEF を介して自動的に挿入されます。

拡張機能のサンプルはこちら

public class SimpleMapPlugin : Extension
{
    public SimpleMapPlugin()
    {
        // Access App.Map as needed.
    }
}
于 2020-04-16T03:00:55.440 に答える