أكثر

لا ترسم الطبقة المخصصة باستخدام ArcObjects؟

لا ترسم الطبقة المخصصة باستخدام ArcObjects؟


لدي طبقة عميل ترث BaseCustomLayer.

أقوم بإضافته إلى MapControl عبر addLayer ولكن الوظيفةتجاوز العامة رسم الفراغ (esriDrawPhase drawPhase ، IDisplay Display ، ITrackCancel trackCancel)لم يضرب.

تظهر الطبقة المخصصة محددة في جدول المحتويات.

أعتقد أنني يجب أن أفتقد بعض سطر التهيئة.


إليك طبقة مخصصة مبسطة:

باستخدام النظام ؛ باستخدام System.Collections.Generic ؛ باستخدام System.Linq ؛ باستخدام System.Text ؛ باستخدام ESRI.ArcGIS.ADF.BaseClasses ؛ باستخدام ESRI.ArcGIS.Geometry. باستخدام ESRI.ArcGIS.Display ؛ باستخدام ESRI.ArcGIS.esriSystem ؛ مساحة الاسم MapControlApplication1 {class CustLayer2: BaseCustomLayer {public override void Draw (esriDrawPhase drawPhase، IDisplay Display، ITrackCancel trackCancel) {System.Diagnostics.Debug.Print ("drawing {0} {1}"، drawPhase، Environment.TickCount)؛ }}}

قمت بإنشاء مشروع جديد واخترت C #> ArcGIS> Extending ArcObjects> Mapcontrol Application ، ثم أضفت قائمة جديدة في قائمة MainForm مع هذا:

private void testToolStripMenuItem_Click (object sender، EventArgs e) {try {CustLayer2 layer = new CustLayer2 ()؛ layer.Name = "حضانة layer2" ؛ axMapControl1.AddLayer (طبقة) ؛ } catch (استثناء ex) {MessageBox.Show (this، ex.Message)؛ }}

عندما أجري أرى هذا الناتج بينما أتحرك حول الخريطة:

رسم esriDPGeography 441416029 رسم esriDP الجغرافيا 441422207 رسم esriDP الجغرافيا 441433579