using DevExpress.XtraEditors; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Geodatabase; using KGIS.Plugin.LayerProperty.Utils; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace KGIS.Plugin.LayerProperty.View { public partial class FormPointLabelRatation : XtraForm { private string selectedField; private esriLabelRotationType labelRotationType; private bool perpendicularToAngle; public string RotationField { get { return this.selectedField; } set { this.selectedField = value; } } public esriLabelRotationType LabelRotationType { get { return this.labelRotationType; } set { this.labelRotationType = value; } } public bool PerpendicularToAngle { get { return this.perpendicularToAngle; } set { this.perpendicularToAngle = value; this.chkPerpendicularAngle.Checked = value; } } public FormPointLabelRatation() { InitializeComponent(); } public bool Init(IFields fields, string defaultField, bool perpendicularToAngle, esriLabelRotationType rotationType) { try { this.labelRotationType = rotationType; this.selectedField = defaultField; this.perpendicularToAngle = perpendicularToAngle; this.chkPerpendicularAngle.Checked = perpendicularToAngle; Utils.Util.InitFieldList(ref this.cmbFields, fields, defaultField, false, true); if (rotationType == esriLabelRotationType.esriRotateLabelGeographic) { this.chkGeographic.Checked = true; this.chkArithmetic.Checked = false; } else { if (rotationType == esriLabelRotationType.esriRotateLabelArithmetic) { this.chkArithmetic.Checked = true; this.chkGeographic.Checked = false; } } } catch (Exception ex) { //RdbUtil.AddException(ex); } return false; } private void btnOk_Click(object sender, System.EventArgs e) { try { base.DialogResult = DialogResult.OK; base.Close(); } catch (Exception ex) { //RdbUtil.AddException(ex); } } private void btnCancel_Click(object sender, System.EventArgs e) { base.DialogResult = DialogResult.Cancel; base.Close(); } private void chkPerpendicularAngle_CheckedChanged(object sender, System.EventArgs e) { this.perpendicularToAngle = this.chkPerpendicularAngle.Checked; } private void cmbFields_SelectedIndexChanged(object sender, System.EventArgs e) { ItemInfo itemInfo = this.cmbFields.SelectedItem as ItemInfo; if (itemInfo != null) { this.selectedField = itemInfo.InnerValue.Name; } } private void chkGeographic_CheckedChanged(object sender, System.EventArgs e) { this.labelRotationType = esriLabelRotationType.esriRotateLabelGeographic; } private void chkArithmetic_CheckedChanged(object sender, System.EventArgs e) { this.labelRotationType = esriLabelRotationType.esriRotateLabelArithmetic; } } }