Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

How to use more than two brushes On Render

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

    How to use more than two brushes On Render

    Hello everyone

    I would like to use more than two background colors depending on levels of delta.

    No problem with just two

    protected override void OnRender(ChartControl chartControl, ChartScale chartScale)
    {........

    if (ShowTotalDelta)
    {
    SharpDX.Direct2D1.Brush deltaColor;

    if (totalDelta > 0)
    deltaColor = TotalDelta1Color.ToDxBrush(RenderTarget);
    else
    deltaColor = TotalDelta2Color.ToDxBrush(RenderTarget);

    RenderTarget.FillRectangle(new RectangleF(xBar, (float)(ChartPanel.H - 12), (float)(chartControl.BarWidth * 2), (float)rectangleOffset), deltaColor);

    .......}


    But if I want four different colors an error "Use of unassigned local variable"deltaColor"" appears


    if (totalDelta > 0
    && totalDelta < 75)
    { deltaColor = TotalDelta1Color.ToDxBrush(RenderTarget); }
    if (totalDelta >= 75
    && totalDelta < 150)
    { deltaColor = TotalDelta3Color.ToDxBrush(RenderTarget); }

    if (totalDelta < 0
    && totalDelta > -75)
    { deltaColor = TotalDelta2Color.ToDxBrush(RenderTarget); }
    if (totalDelta <= -75
    && totalDelta > -150)
    { deltaColor = TotalDelta4Color.ToDxBrush(RenderTarget); }

    Any idea how can I do this?

    Thanks

    #2
    Hello Rosario,

    Thanks for your post.

    When do you see the error message? When compiling?

    Does the error message point to a specific line in your code?

    Comment


      #3
      Hello Paul

      Yes, error is compiling.

      Line

      RenderTarget.FillRectangle(new RectangleF(xBar, (float)(ChartPanel.H - 12), (float)(chartControl.BarWidth * 2), (float)rectangleOffset), deltaColor);

      Sincerely,

      Rosario

      Comment


        #4
        Hello Rosario,

        Thanks for your reply.

        I would suggest adding a "default" assignment that will provide a brush color in case your if statements don't provide a brush color.

        For example

        deltaColor = TotalDelta1Color.ToDxBrush(RenderTarget); // default color

        if (totalDelta > 0
        && totalDelta < 75)
        { deltaColor = TotalDelta1Color.ToDxBrush(RenderTarget); }
        if (totalDelta >= 75
        && totalDelta < 150)
        { deltaColor = TotalDelta3Color.ToDxBrush(RenderTarget); }

        if (totalDelta < 0
        && totalDelta > -75)
        { deltaColor = TotalDelta2Color.ToDxBrush(RenderTarget); }
        if (totalDelta <= -75
        && totalDelta > -150)
        { deltaColor = TotalDelta4Color.ToDxBrush(RenderTarget); }

        Comment


          #5
          Hello, Paul

          Thanks a lot! It works!

          Comment

          Latest Posts

          Collapse

          Topics Statistics Last Post
          Started by Geovanny Suaza, 02-11-2026, 06:32 PM
          0 responses
          647 views
          0 likes
          Last Post Geovanny Suaza  
          Started by Geovanny Suaza, 02-11-2026, 05:51 PM
          0 responses
          369 views
          1 like
          Last Post Geovanny Suaza  
          Started by Mindset, 02-09-2026, 11:44 AM
          0 responses
          108 views
          0 likes
          Last Post Mindset
          by Mindset
           
          Started by Geovanny Suaza, 02-02-2026, 12:30 PM
          0 responses
          572 views
          1 like
          Last Post Geovanny Suaza  
          Started by RFrosty, 01-28-2026, 06:49 PM
          0 responses
          573 views
          1 like
          Last Post RFrosty
          by RFrosty
           
          Working...
          X