You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							147 lines
						
					
					
						
							4.6 KiB
						
					
					
				
			
		
		
	
	
							147 lines
						
					
					
						
							4.6 KiB
						
					
					
				using System; | 
						|
using System.Collections.Generic; | 
						|
using System.ComponentModel; | 
						|
using System.Drawing; | 
						|
using System.Data; | 
						|
using System.Linq; | 
						|
using System.Text; | 
						|
using System.Threading.Tasks; | 
						|
using System.Windows.Forms; | 
						|
using ESRI.ArcGIS.Geometry; | 
						|
 | 
						|
namespace KGIS.Plugin.LayerProperty.View.UC_Controls | 
						|
{ | 
						|
    public partial class UCExtentSet : UserControl | 
						|
    { | 
						|
        private double left; | 
						|
        private double bottom; | 
						|
        private double right; | 
						|
        private double top; | 
						|
        public new double Left | 
						|
        { | 
						|
            get | 
						|
            { | 
						|
                return this.left; | 
						|
            } | 
						|
            set | 
						|
            { | 
						|
                this.left = value; | 
						|
            } | 
						|
        } | 
						|
        public new double Bottom | 
						|
        { | 
						|
            get | 
						|
            { | 
						|
                return this.bottom; | 
						|
            } | 
						|
            set | 
						|
            { | 
						|
                this.bottom = value; | 
						|
            } | 
						|
        } | 
						|
        public new double Right | 
						|
        { | 
						|
            get | 
						|
            { | 
						|
                return this.right; | 
						|
            } | 
						|
            set | 
						|
            { | 
						|
                this.right = value; | 
						|
            } | 
						|
        } | 
						|
        public new double Top | 
						|
        { | 
						|
            get | 
						|
            { | 
						|
                return this.top; | 
						|
            } | 
						|
            set | 
						|
            { | 
						|
                this.top = value; | 
						|
            } | 
						|
        } | 
						|
        public UCExtentSet() | 
						|
        { | 
						|
            InitializeComponent(); | 
						|
        } | 
						|
        public void SetEnvelope(IEnvelope envelope, bool readOnly) | 
						|
        { | 
						|
            try | 
						|
            { | 
						|
                try | 
						|
                { | 
						|
                    this.txtBottom.Text = ""; | 
						|
                    this.txtLeft.Text = ""; | 
						|
                    this.txtRight.Text = ""; | 
						|
                    this.txtTop.Text = ""; | 
						|
                } | 
						|
                catch | 
						|
                { | 
						|
                } | 
						|
                this.txtBottom.Properties.ReadOnly = readOnly; | 
						|
                this.txtLeft.Properties.ReadOnly = readOnly; | 
						|
                this.txtRight.Properties.ReadOnly = readOnly; | 
						|
                this.txtTop.Properties.ReadOnly = readOnly; | 
						|
                if (envelope != null) | 
						|
                { | 
						|
                    this.txtBottom.Text = envelope.YMin.ToString(); | 
						|
                    this.txtLeft.Text = envelope.XMin.ToString(); | 
						|
                    this.txtRight.Text = envelope.XMax.ToString(); | 
						|
                    this.txtTop.Text = envelope.YMax.ToString(); | 
						|
                    ISpatialReference spatialReference = envelope.SpatialReference; | 
						|
                    this.SetUnit(spatialReference); | 
						|
                } | 
						|
            } | 
						|
            catch | 
						|
            { | 
						|
            } | 
						|
        } | 
						|
        private void SetUnit(ISpatialReference spatialReference) | 
						|
        { | 
						|
            if (spatialReference is IGeographicCoordinateSystem) | 
						|
            { | 
						|
                IGeographicCoordinateSystem geographicCoordinateSystem = spatialReference as IGeographicCoordinateSystem; | 
						|
                IAngularUnit coordinateUnit = geographicCoordinateSystem.CoordinateUnit; | 
						|
                string text = (coordinateUnit != null) ? coordinateUnit.Name : "未知"; | 
						|
                this.lblUnit1.Text = text; | 
						|
                this.lblUnit2.Text = text; | 
						|
                this.lblUnit3.Text = text; | 
						|
                this.lblUnit4.Text = text; | 
						|
                return; | 
						|
            } | 
						|
            if (spatialReference is IProjectedCoordinateSystem) | 
						|
            { | 
						|
                IProjectedCoordinateSystem projectedCoordinateSystem = spatialReference as IProjectedCoordinateSystem; | 
						|
                ILinearUnit coordinateUnit2 = projectedCoordinateSystem.CoordinateUnit; | 
						|
                string text2 = (coordinateUnit2 != null) ? coordinateUnit2.Name : "未知"; | 
						|
                this.lblUnit1.Text = text2; | 
						|
                this.lblUnit2.Text = text2; | 
						|
                this.lblUnit3.Text = text2; | 
						|
                this.lblUnit4.Text = text2; | 
						|
                return; | 
						|
            } | 
						|
            string text3 = "未知"; | 
						|
            this.lblUnit1.Text = text3; | 
						|
            this.lblUnit2.Text = text3; | 
						|
            this.lblUnit3.Text = text3; | 
						|
            this.lblUnit4.Text = text3; | 
						|
        } | 
						|
        private void txtTop_EditValueChanged(object sender, System.EventArgs e) | 
						|
        { | 
						|
            this.top = Convert.ToDouble(this.txtTop.Text); | 
						|
        } | 
						|
        private void txtRight_EditValueChanged(object sender, System.EventArgs e) | 
						|
        { | 
						|
            this.right = Convert.ToDouble(this.txtRight.Text); | 
						|
        } | 
						|
        private void txtLeft_EditValueChanged(object sender, System.EventArgs e) | 
						|
        { | 
						|
            this.left = Convert.ToDouble(this.txtLeft.Text); | 
						|
        } | 
						|
        private void txtBottom_EditValueChanged(object sender, System.EventArgs e) | 
						|
        { | 
						|
            this.bottom = Convert.ToDouble(this.txtBottom.Text); | 
						|
        } | 
						|
    } | 
						|
}
 | 
						|
 |