コード例 #1
0
        private void DrawSingleLineText(IGraphicsTarget g, string text, FontDesc fontDesc, PointF pt, StringAlignment horizAlignment, StringAlignment vertAlignment)
        {
            object font = new object();

            g.CreateFont(font, fontDesc.Name, fontDesc.EmHeight, fontDesc.TextEffects);

            ITextFaceMetrics fontMetrics = textMetrics.GetTextFaceMetrics(fontDesc.Name, fontDesc.EmHeight, fontDesc.TextEffects);
            SizeF            size        = fontMetrics.GetTextSize(text);

            switch (horizAlignment)
            {
            case StringAlignment.Near:
                break;

            case StringAlignment.Center:
                pt.X = pt.X - size.Width / 2F; break;

            case StringAlignment.Far:
                pt.X = pt.X - size.Width; break;
            }

            switch (vertAlignment)
            {
            case StringAlignment.Near:
                break;

            case StringAlignment.Center:
                pt.Y = pt.Y - size.Height / 2F; break;

            case StringAlignment.Far:
                pt.Y = pt.Y - size.Height; break;
            }

            g.DrawText(text, font, blackBrush, pt);

            fontMetrics.Dispose();
        }