Пример #1
0
        /// <summary>
        /// Draws a scalebar on the screen.
        /// </summary>
        public override void Render(Graphics graphics, Map mapBox)
        {
            if (Visible)
            {
                if (!initScreenPosition)
                {
                    initScreenPosition = SetInitialScreenLocation();
                }

                // Get the current map scale
                double meters = GetSegmentInMeters();

                //display km scale on bar if map has small scale
                bar.BarUnit = meters < 5000 ? MapUnits.ws_muMeter : MapUnits.ws_muKilometer;

                if (meters > 0) // A valid scale was found
                {
                    bar.SetScale(meters, size.Width);
                    bar.DrawTheControl(graphics, ScreenRectangle);
                }
            }
            base.Render(graphics, mapBox);
        }
Пример #2
0
        public void ShowScaleBar()
        {
            var rectangle = new Rectangle(5,5,300,50);
            var bar = new ScaleBar();
            bar.BorderVisible = false;
            bar.TransparentBackground = true;
            bar.BorderVisible = true;

            //bar.BarColor2 = Color.Yellow;
            bar.SetScale(20, 40);
        //    bar.MapUnit = MapUnits.ws_muMeter;
          //  bar.BarUnit = MapUnits.ws_muMeter;
            //bar.SetCustomUnit(4,"test","test");
           // bar.MapUnit = MapUnits.ws_muCustom;

            using (var control = new UserControl())
            {

                
                
                control.Paint +=
                    delegate(object sender, PaintEventArgs e)
                        {
                        //    rectangle = new Rectangle(new Point(0, 0), ((Control) sender).Size);
                            bar.DrawTheControl(e.Graphics, rectangle);
                        };
                WindowsFormsTestHelper.ShowModal(control);
            }
        }