예제 #1
0
        public override Size2D MeasureString(String text, StyleFont font)
        {
            GdiFont gdiFont = ViewConverter.Convert(font);
            SizeF   gdiSize = _internalGraphics.MeasureString(
                text, gdiFont, Int32.MaxValue, StringFormat.GenericTypographic);

            return(ViewConverter.Convert(gdiSize));
        }
예제 #2
0
        public override IEnumerable <GdiRenderObject> RenderText(String text, StyleFont font, Rectangle2D layoutRectangle,
                                                                 Path2D flowPath, StyleBrush fontBrush, Matrix2D transform)
        {
            GdiRenderObject renderedText = new GdiRenderObject(
                text, ViewConverter.Convert(font), ViewConverter.Convert(layoutRectangle),
                ViewConverter.Convert(fontBrush), null, null, null, null, null);

            yield return(renderedText);
        }
예제 #3
0
        public override IEnumerable <GdiRenderObject> RenderPaths(IEnumerable <Path2D> paths,
                                                                  StylePen line, StylePen highlightLine,
                                                                  StylePen selectLine,
                                                                  StylePen outline, StylePen highlightOutline,
                                                                  StylePen selectOutline, RenderState renderState)
        {
            foreach (Path2D path in paths)
            {
                GdiPath gdiPath = ViewConverter.Convert(path);

                GdiRenderObject holder =
                    new GdiRenderObject(gdiPath, null, null, null, ViewConverter.Convert(line),
                                        ViewConverter.Convert(highlightLine), ViewConverter.Convert(selectLine),
                                        ViewConverter.Convert(outline), ViewConverter.Convert(highlightOutline),
                                        ViewConverter.Convert(selectOutline));

                holder.State = renderState;

                yield return(holder);
            }
        }
예제 #4
0
        public override IEnumerable <GdiRenderObject> RenderSymbols(IEnumerable <Point2D> locations, Symbol2D symbol,
                                                                    Symbol2D highlightSymbol, Symbol2D selectSymbol,
                                                                    RenderState renderState)
        {
            if (renderState == RenderState.Selected)
            {
                symbol = selectSymbol;
            }
            if (renderState == RenderState.Highlighted)
            {
                symbol = highlightSymbol;
            }

            foreach (Point2D location in locations)
            {
                Bitmap          bitmapSymbol   = getSymbol(symbol);
                GdiMatrix       transform      = ViewConverter.Convert(symbol.AffineTransform);
                GdiColorMatrix  colorTransform = ViewConverter.Convert(symbol.ColorTransform);
                RectangleF      bounds         = new RectangleF(ViewConverter.Convert(location), bitmapSymbol.Size);
                GdiRenderObject holder         = new GdiRenderObject(bitmapSymbol, bounds, transform, colorTransform);
                holder.State = renderState;
                yield return(holder);
            }
        }