public void DrawText()

in dotnet/WinForms/VisualLayerIntegration/VisualLayerIntegration/BarGraphUtility/BarGraph.cs [236:296]


        public void DrawText(WindowRenderTarget renderTarget, string titleText, string xAxisText, string yAxisText, float baseTextSize)
        {
            var sgOffsetY = renderTarget.Size.Height * 1 / 15;
            var sgOffsetX = renderTarget.Size.Width * 1 / 15;
            var containerHeight = renderTarget.Size.Height - sgOffsetY * 2;
            var containerWidth = renderTarget.Size.Width - sgOffsetX * 2; // not used?
            var textWidth = (int)containerHeight;
            var textHeight = (int)sgOffsetY;

            var FactoryDWrite = new SharpDX.DirectWrite.Factory();

            textFormatTitle = new TextFormat(FactoryDWrite, "Segoe", baseTextSize * 5 / 4)
            {
                TextAlignment = TextAlignment.Center,
                ParagraphAlignment = ParagraphAlignment.Center
            };
            textFormatHorizontal = new TextFormat(FactoryDWrite, "Segoe", baseTextSize)
            {
                TextAlignment = TextAlignment.Center,
                ParagraphAlignment = ParagraphAlignment.Far
            };
            textFormatVertical = new TextFormat(FactoryDWrite, "Segoe", baseTextSize)
            {
                TextAlignment = TextAlignment.Center,
                ParagraphAlignment = ParagraphAlignment.Far
            };

            renderTarget.AntialiasMode = AntialiasMode.PerPrimitive;
            renderTarget.TextAntialiasMode = TextAntialiasMode.Cleartype;

            textSceneColorBrush = new SolidColorBrush(renderTarget, black);

            RectangleF ClientRectangleTitle = new RectangleF(0, 0, textWidth, textHeight);
            RectangleF ClientRectangleXAxis = new RectangleF(0,
                containerHeight - textHeight + sgOffsetY * 2, textWidth, textHeight);
            RectangleF ClientRectangleYAxis = new RectangleF(-sgOffsetX,
                containerHeight - textHeight + sgOffsetY, textWidth, textHeight);

            textSceneColorBrush.Color = black;

            //Draw title and x axis text.
            renderTarget.BeginDraw();

            renderTarget.Clear(white);
            renderTarget.DrawText(titleText, textFormatTitle, ClientRectangleTitle, textSceneColorBrush);
            renderTarget.DrawText(xAxisText, textFormatHorizontal, ClientRectangleXAxis, textSceneColorBrush);

            renderTarget.EndDraw();

            // Rotate render target to draw y axis text.
            renderTarget.Transform = Matrix3x2.Rotation((float)(-Math.PI / 2), new Vector2(0, containerHeight));

            renderTarget.BeginDraw();

            renderTarget.DrawText(yAxisText, textFormatVertical, ClientRectangleYAxis, textSceneColorBrush);

            renderTarget.EndDraw();

            // Rotate the RenderTarget back.
            renderTarget.Transform = Matrix3x2.Identity;
        }