CartesianGridLineAnnotation showing at the wrong value

7 posts, 0 answers
  1. Andrew
    Andrew avatar
    37 posts
    Member since:
    Dec 2012

    Posted 17 Nov 2015 Link to this post

    I'm having a problem adding CartesianGridLineAnnotation to series of square cartesian plots. I have four square charts, each going from x to -x in each axis with 0,0 in the middle. I want to add a dark gridline to the 0, 0 point and CartesianGridLineAnnotation looked like the perfect thing for this. I added the following code :

      

    <telerik:RadCartesianChart.Annotations>
      
        <telerik:CartesianGridLineAnnotation Axis="{Binding AxisX}" Value="0" />
      
        <telerik:CartesianGridLineAnnotation Axis="{Binding AxisY}" Value="0" />
      
    </telerik:RadCartesianChart.Annotations>​

    However when I view my charts the annotation appears ​1 pixel left of the 0 value on the horizontal axis and 1 pixel above the 0 value on the vertical axis. This is true for the first two charts, the second two the vertical axis line seems to be in the perfect position yet they are being drawn with the exact same code. 

    Whenever the window size of the app is changed the charts are resized to maintain a square charting area. I notice as I resize the charts the annotations move from being one side of the 0 value, to being on the 0 value, then being the other side of the 0 value. 

    I am currently using an older version of the Telerik dlls (2013.3.1204.40), is there a fix/workaround that will ensure that the annotation lines are drawn exactly on the specified value? 

    I've attached a picture of the four charts in question on their initial display. You can see that the black annotations do not line up with the gray grid lines.

    Thanks for the help.

  2. Andrew
    Andrew avatar
    37 posts
    Member since:
    Dec 2012

    Posted 17 Nov 2015 Link to this post

    The forum errored when I tried to post the images so I will try adding them again. 
  3. UI for WPF is Visual Studio 2017 Ready
  4. Evgenia
    Admin
    Evgenia avatar
    1406 posts

    Posted 18 Nov 2015 Link to this post

    Hi Andrew,

    I was able to reproduce the displacement of the CartesianGridlineAnnotation based on your information provided. The problem is caused by the fact that the annotation does not snap to the tick of the axis by default. We have a public feedback item where you might vote for this visual glitch to be fixed -- here is link to it. Please stay tuned for any changes. 

    Unfortunately there is not an easy workaround for this. The onliest thing we can suggest is that you render a custom UI element on the top of the chart and use our Conversion API to position it. Let me know if you need this workaround and we'll provide you with a code sample demonstrating it.

    We are sorry for any inconvenience caused.

    Regards,
    Evgenia
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
  5. Andrew
    Andrew avatar
    37 posts
    Member since:
    Dec 2012

    Posted 18 Nov 2015 in reply to Evgenia Link to this post

    Hi Evgenia, 

    Thanks for the reply. I have up voted the feedback item. Would you be able to provide an example of the suggested work around? 

  6. Evgenia
    Admin
    Evgenia avatar
    1406 posts

    Posted 19 Nov 2015 Link to this post

    Hi Andrew,

    You might find attached a project that demonstrates the workaround I mentioned. Here's in brief what we did -- we add Canvas on top of the chart's PlotArea. It will be used to position two UIElement-s -- Rectangle-s in our case at the place where we had our vertical and horizontal annotations. Now we need to wire to LayoutUpdated event of the chart and do the needed calculations to position our Rectangles at the 0 tick of the Horizontal and Vertical Axes and add them to the PlotArea. 
    Since we want this to work in every case where the axes range might change like zooming and panning behavior for example we wire to VisibleRangeChanged event of the axes and call ScheduleUIUpdate method there as well.

    Regards,
    Evgenia
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
  7. Andrew
    Andrew avatar
    37 posts
    Member since:
    Dec 2012

    Posted 23 Nov 2015 in reply to Evgenia Link to this post

    Hi Evgenia,

    The example project you gave me works great, however it is using a much newer dll version (2016.1.1119.40) than I am (2013.3.1204.40). Your fix requires ActualVisibleRangeChanged and NumericalRangeChangedEventArgs which are not available in the dll version I'm using. I have tried to adapt the code you gave me using properties I have available but the annotations are always displayed far out of position. Could you suggest a fix that works on the 2013.3.1204.40 version of the dlls? 

    Thanks again for the help,

    Ewan. 

  8. Evgenia
    Admin
    Evgenia avatar
    1406 posts

    Posted 23 Nov 2015 Link to this post

    Hello Andrew,

    Unfortunately these events were not yet shipped with 2013.3.1204.40 binaries version. The onliest one you can use is LayoutUpdated as demonstrated in the attached project and it should be absolutely sufficient for you if you don't use Zoom and Pan Behavior of the Chart or dynamic series (series that get added/removed dynamically) or any other feature that might cause the axes range to be recalculated.
    For any other case where those events are needed I recommend that you upgrade to our latest binaries like Q3 SP1 2015 for example. Actually we highly encourage our clients to use the latest binaries that we ship so that they are up-to-date with our present bug fixes, new features and have full support for them.

    Regards,
    Evgenia
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
Back to Top
UI for WPF is Visual Studio 2017 Ready