Announcement

Collapse

Looking for a User App or Add-On built by the NinjaTrader community?

Visit NinjaTrader EcoSystem and our free User App Share!

Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less

Partner 728x90

Collapse

Use of LineMetrics

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Use of LineMetrics

    Hi, I'm trying to place lines of 'random' length text next to each other horizontally. Each piece of text is a different color so (I assume) it can't be one text object. So I'm trying to work out the width of each piece of text so that I can place the next text without overlapping the previous one. I'm assuming I need to use 'LineMetrics' but I can't find any examples. I'd appreciate an example. So in my example code below, how do I set textOffset1, 2 and 3 automatically? Thanks

    Code:
            protected override void OnRender(ChartControl chartControl, ChartScale chartScale)
            {
                base.OnRender(chartControl, chartScale);
    
                // define the point for the text to render
                SharpDX.Vector2 startPoint = new SharpDX.Vector2(ChartPanel.X, ChartPanel.Y + 20);
    
                // construct the text format with desired font family and size
                SharpDX.DirectWrite.TextFormat textFormat = new SharpDX.DirectWrite.TextFormat(Core.Globals.DirectWriteFactory, "Arial", 12);
    
                int textOffset1 = 5;
                int textOffset2 = 25;
                int textOffset3 = 45;
    
                // construct the rectangleF struct to describe the position and size the text
                SharpDX.RectangleF rectangleF1 = new SharpDX.RectangleF(startPoint.X + textOffset1, startPoint.Y, ChartPanel.W, ChartPanel.H);
                SharpDX.RectangleF rectangleF2 = new SharpDX.RectangleF(startPoint.X + textOffset2, startPoint.Y, ChartPanel.W, ChartPanel.H);
                SharpDX.RectangleF rectangleF3 = new SharpDX.RectangleF(startPoint.X + textOffset3, startPoint.Y, ChartPanel.W, ChartPanel.H);
    
    
                // define the brush used for the text
                //SharpDX.Direct2D1.SolidColorBrush customDXBrush1 = new SharpDX.Direct2D1.SolidColorBrush(RenderTarget, SharpDX.Color.Blue);
                //SharpDX.Direct2D1.SolidColorBrush customDXBrush2 = new SharpDX.Direct2D1.SolidColorBrush(RenderTarget, SharpDX.Color.Red);
                //SharpDX.Direct2D1.SolidColorBrush customDXBrush3 = new SharpDX.Direct2D1.SolidColorBrush(RenderTarget, SharpDX.Color.Yellow);
    
                // execute the render target text command with desired values
                RenderTarget.DrawText(myText1, textFormat, rectangleF1, customDXBrush1);
                RenderTarget.DrawText(myText2, textFormat, rectangleF2, customDXBrush1);
                RenderTarget.DrawText(myText3, textFormat, rectangleF3, customDXBrush1);
    
    
                // always dispose of textFormat when finished
                textFormat.Dispose();
    
                // always dipose of brush when finished
                customDXBrush1.Dispose();
                customDXBrush2.Dispose();
                customDXBrush3.Dispose();
            }

    #2
    Hello bubblegum,

    Thank you for your post.

    You could use TextLayout and TextLayout.Metrics. This section of the help guide should point you in the correct direction:



    Please let us know if we may be of further assistance to you.
    Kate W.NinjaTrader Customer Service

    Comment

    Latest Posts

    Collapse

    Topics Statistics Last Post
    Started by cmtjoancolmenero, Yesterday, 03:58 PM
    1 response
    17 views
    0 likes
    Last Post NinjaTrader_Gaby  
    Started by benmarkal, Yesterday, 12:52 PM
    3 responses
    23 views
    0 likes
    Last Post NinjaTrader_Gaby  
    Started by helpwanted, Today, 03:06 AM
    1 response
    20 views
    0 likes
    Last Post sarafuenonly123  
    Started by Brevo, Today, 01:45 AM
    0 responses
    11 views
    0 likes
    Last Post Brevo
    by Brevo
     
    Started by pvincent, 06-23-2022, 12:53 PM
    14 responses
    244 views
    0 likes
    Last Post Nyman
    by Nyman
     
    Working...
    X