예제 #1
0
        public Text()
        {
            _symbol = new SimpleTextSymbol();
            _symbol.Font = Current.Engine.CreateFont("Arial", 20);
            _symbol.Text = _text;
            _symbol.TextSymbolAlignment = TextSymbolAlignment.leftAlignOver;
            //this.Symbol = _symbol;

            AggregateGeometry aGeometry = new AggregateGeometry();
            Polygon polygon = new Polygon();
            Ring ring = new Ring();
            ring.AddPoint(new Point(0, 0));
            ring.AddPoint(new Point(1, 0));
            ring.AddPoint(new Point(1, 1));
            ring.AddPoint(new Point(0, 1));
            polygon.AddRing(ring);

            aGeometry.AddGeometry(polygon);
            aGeometry.AddGeometry(new Point(0, 0));

            this.Template = aGeometry;

            RemoveAllGrabbers();
            AddGrabber(GrabberIDs.rotation);
            AddGrabber(GrabberIDs.move);
        }
예제 #2
0
        public override void Draw(IDisplay display)
        {
            if (display == null || display.Canvas == null)
            {
                return;
            }

            SimpleTextSymbol sym = _symbol.Clone(new CloneOptions(display, false)) as SimpleTextSymbol;
            sym.Text = _text;
            sym.Angle = (float)this.Rotation;

            var size = display.Canvas.MeasureText(_text, sym.Font);
            double dx = size.Width * display.mapScale / (display.dpi / 0.0254);  // [m]
            double dy = size.Height * display.mapScale / (display.dpi / 0.0254);  // [m]
            base.Scale(dx, dy);

            IGeometry geometry = TransformGeometry();
            if (geometry == null)
            {
                return;
            }

            display.Draw(sym, geometry);
            sym.Release();
        }
예제 #3
0
        public override void Draw(IDisplay display)
        {
            if (display == null || display.GraphicsContext == null)
            {
                return;
            }

            SimpleTextSymbol sym = _symbol.Clone(display) as SimpleTextSymbol;

            sym.Text  = _text;
            sym.Angle = (float)this.Rotation;

            System.Drawing.SizeF size = display.GraphicsContext.MeasureString(_text, sym.Font);
            double dx = size.Width * display.mapScale / (display.dpi / 0.0254);  // [m]
            double dy = size.Height * display.mapScale / (display.dpi / 0.0254); // [m]

            base.Scale(dx, dy);

            IGeometry geometry = TransformGeometry();

            if (geometry == null)
            {
                return;
            }

            display.Draw(sym, geometry);
            sym.Release();
        }
예제 #4
0
 public override void Load(gView.Framework.IO.IPersistStream stream)
 {
     base.Load(stream);
     _text = (string)stream.Load("Text", "Text");
     SimpleTextSymbol sym = stream.Load("ISymbol", null) as SimpleTextSymbol;
     if (sym != null)
     {
         _symbol.Release();
         _symbol = sym;
     }
 }