示例#1
0
        private void VisitDynamic(ShapeDynamicTextBase dynamic)
        {
            if (string.IsNullOrEmpty(dynamic.Text))
            {
                return;
            }

            var hideGrid = true;
            var FontMgr  = dynamic.FontMgr;

            FontMgr.ShowGrid   = !hideGrid;
            FontMgr.ScaleIndex = Zoom;
            FontMgr.SetStyle(dynamic.IsFrameSizeFixed, dynamic.IsFontSizeFixed);
            FontMgr.TextColor     = dynamic.ConveredForeColor(Layer.Shape.SignType); //.ForeColor;
            FontMgr.BackColor     = dynamic.ConveredBackColor(Layer.Shape.SignType); //.BackColor;
            FontMgr.FontName      = dynamic.Font.Name;
            FontMgr.FontHeight    = dynamic.Font.Size * Zoom;
            FontMgr.Alignment     = dynamic.Align;
            FontMgr.LineAlignment = dynamic.Valign;
            FontMgr.Bold          = (dynamic.Font.Style & FontStyle.Bold) == FontStyle.Bold;
            FontMgr.Italic        = (dynamic.Font.Style & FontStyle.Italic) == FontStyle.Italic;
            FontMgr.SignSize      = new Size(dynamic.SignSize.Width * Zoom - 2, dynamic.SignSize.Height * Zoom - 2);
            FontMgr.FrameSize     = DrawMode == DESDrawMode.Sign ? FontMgr.SignSize : dynamic.VirtualBounds.Size;
            FontMgr.Text          = dynamic.Text;

            List <Image>  imagesActual = new List <Image>();
            List <Image>  images       = new List <Image>();
            List <string> strings      = new List <string>();

            FontMgr.GenerateBmps(imagesActual, images, strings);


            if (images.Count > 0)
            {
                dynamic.BitmapOverlay = images[0];
                dynamic.InnerImage    = new Bitmap(dynamic.BitmapOverlay);
            }

            if (dynamic.BitmapOverlay != null)
            {
                dynamic.InnerImagePath = dynamic.SaveImage(dynamic.BitmapOverlay);
            }
            dynamic.IsChanged = true;
        }