WindowsFormHost をホストする WPF アプリがあります。WindowsFormHost は、ESRI の ArcEngine を読み込みます。ArcEngine には利用可能な描画機能がいくつかありますが、より強力で制御しやすいものを探しています。ArcEngine によって作成された画像の上に画像とテキストを画面に描画したい場合、どのようなオプションがありますか?
2 に答える
2
WPF ウィンドウは、含まれているすべての winforms 要素に対して何もレンダリングできません。winforms 要素内で描画を行うか、Winforms 要素の上に維持するためにプログラムで移動する透明な背景と境界線のない別の WPF ウィンドウを作成するという厄介なハックを行う必要があります-その後、このオーバーレイに描画できますWPF メカニズムを使用するウィンドウ。それは醜いですが効果的です。
于 2011-01-04T16:23:13.607 に答える
1
カスタムレイヤーを実装できます。レイヤー内では、GDI+ または OpenGL (動的表示モード) を使用して描画方法を実装できます。
ILayer インターフェイスを実装するクラスを作成します。この場合、必要に応じて図面を管理できます。GDI+を使った簡単な実装の例があります
[Guid("0c745c09-a67a-4736-ba8c-23238582f78f")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("CustomLayerPan.customLayer")]
public class customLayer : ESRI.ArcGIS.ADF.BaseClasses
{
public customLayer(List<IGeometry> p_objItems)
{
}
public override void Draw(ESRI.ArcGIS.esriSystem.esriDrawPhase drawPhase, ESRI.ArcGIS.Display.IDisplay Display, ESRI.ArcGIS.esriSystem.ITrackCancel trackCancel)
{
Graphics objGraphics = Graphics.FromHdc(new IntPtr(((IScreenDisplay)Display).hDC)) as Graphics;
//Draw here using GDI+
}
}
于 2014-12-03T09:41:47.807 に答える