I am trying to copy a XamDataChart to my clipboard, this is what i am currently using:
Dim OldSize As New Size(Me.ActualWidth, Me.ActualHeight) copyChart.Measure(New Size(Me.ActualWidth, Me.ActualHeight)) copyChart.Arrange(New Rect(0, 0, Me.ActualWidth, Me.ActualHeight)) Dim Tb As New RenderTargetBitmap(CInt(Me.ActualWidth), CInt(Me.ActualHeight), 96, 96, PixelFormats.Pbgra32) copyChart.UpdateLayout() Tb.Render(copyChart) Clipboard.SetImage(Tb)
Dim OldSize As New Size(Me.ActualWidth, Me.ActualHeight) copyChart.Measure(New Size(Me.ActualWidth, Me.ActualHeight)) copyChart.Arrange(New Rect(0, 0, Me.ActualWidth, Me.ActualHeight))
Dim Tb As New RenderTargetBitmap(CInt(Me.ActualWidth), CInt(Me.ActualHeight), 96, 96, PixelFormats.Pbgra32) copyChart.UpdateLayout() Tb.Render(copyChart) Clipboard.SetImage(Tb)
This creates the chart and copies it to the clipboard, but the lines aren't on there, and it's not drawn quite correctly...is there a quick snippet that will copy a chart to clipboard?
Hello,
I have been looking into your description however I am not sure what might be wrong with your implementation. Would you please attach a test sample, so I can continue investigating into your specific scenario.
Thanks in advance. Looking forward to hearing from you.
I'm on travel until tomorrow, so I'll see if i can work something up quickly...
if it helps, i'm actually creating a copy of the chart before attempting the screenshot via a copy constructor that recreates the series, so it's possible that I've got something wrong in that.
Hello all,
I have created a test sample () in C# following sykobag’s approach. along with saving the XamDataChart to file, with the difference that I did this on button clicks to avoid any rendering issues. Sykobag, I suppose that, as you mentioned, there might be something amiss in your project. If you could attach a test sample reproducing your scenario I’d be glad to look into it for you.
Please let me know if I could be of any further assistance.
I was able to get it fixed using a workaround...
My charts have a Static ScatterSeries, along with all of their ScatterLineSeries, that just holds a duplicate of all of the points in the ScatterLineSeries, so that I can traverse the lines and whatnot.
For some reason, if the Visibility of that first series is set to Collapsed, none of the series are rendered, and the chart isn't re-measured, so I suspect there is something underlying that isn't checking all of those.
My workaround merely makes sure that all of the individual points are turned off, but that the series itself is still visible, then it renders the clipboard correctly
Thanks,
Brian
Hi Brian,
I just wanted to double-check, if I can assist you any further on this matter, and if not would you please verify the thread as answered so it helps other users with a similar predicament.
Thanks in advance.
Petar,
As I said in my previous post, I have a workaround that makes it work for my special case.
However, I think there may be something inherently wrong with the code that causes it to not render properly if the first series is not visible.
Yes, I tested it by adding another series to my sample. I am attaching the modified version for your reference (DataChart_to_Image_modified.zip).
Hope this helps you find the real issue.
I have the latest service release already.
When you tested this behavior was it using your sample? I'm afraid my application is much larger than a sample, and there could be an issue with it somewhere else.
But, if your copy to clipboard works with the first series visibility turned off, then it must be something else in my code somewhere, which unfortunately i don't have the time to find right now...so I won't need anything else from you.
Hello Brian,
I tried to reproduce this behavior with the latest Service Release and all other Series are visible after I hide the first one (Visibility="Hidden" / Visibility="Collapsed"). Please download and install the latest Service Release and let me know if you can still reproduce this issue.
Looking forward to hearing from you.