/// <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); }
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); } }