واسط کاربری مایکروسافتWPF در Arc GIS Engine
همانطور که میدانید برنامه های WPF ظاهر گرافیکی بسیار زیبایی دارند و از همه مهتر اینکه میتوانید اینترفیس کاربر را با ویرایشگر قوی مانند Blend طراحی کنید
برنامه نویسان آرک آبجکت نمی توانند بطور کامل از WPF استفاده کنند و یا ان را جایگزین Winapp سازند مهمترین محدودیت های WPF درArc GIS Engine بشرح زیر است
- در پنجره WPF نمیتوانید از License Control استفاده کنید و باید لایسنس دهی برنامه را با کدنویسی در Code Behind انجام دهید مطابق سورس کد زیر
protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e) ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine); InitializeEngineLicense(); } private void InitializeEngineLicense() { // تعریف آبجکت AoInitialize aoi = new AoInitializeClass(); //Additional license choices can be included here. // تعریف لایسنیس انجین esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeEngine; if (aoi.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable) { aoi.Initialize(productCode); } { |
۲- مشخصات و رخدادهای کنترلر های انجین بوسیله XAML قابل دستیابی نیست و باید آنها را درCode Behind تعریف کنید
// معرفی متد برای ایجاد یک
//Map Control
private void CreateMapControl()
{
mapControl = new AxMapControl();
mapHost.Child = mapControl;
}
3- المنت های XAML و کلاس های انجین بصورت کاملا مجزا رندر میشوند بنابراین وقتی روی فرم تغییرات کلی اعمال میکنید این تغیییرات در کنترل های بصری انجین نمود واقعی نخواهند داشت
4- مشکل دیگر در نحوه چیدمان اجزا ٌWinapp و WPF است که اغلب روی همدیگر می افتند Overlapping