I am trying to export the Gantt control grid using the sample "ExportTo Image_2017" sample solution as starting point, but the grid image always comes out misssing a part of it. I would like to have the complete grid on the image.
Could you guys point me in the direction, so I can complete the idea?
I´m sending the image output as an attachment.
Thanks in advance.
The code:
public void ExporGridtBtn_Click(object sender, System.Windows.RoutedEventArgs e)
{
RenderTargetBitmap bmp;
BitmapEncoder bitmapEncoder;
int width;
GanttControl Gantt = this.AssociatedObject.TabControl.SelectedContent as GanttControl;
GanttGrid tmp = Gantt.FindName<GanttGrid>("PART_GanttGrid");
ScrollViewer chartGrid = tmp.FindName<ScrollViewer>("PART_ScrollViewer");
Gantt.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
Gantt.Arrange(new Rect(new Size(Gantt.DesiredSize.Width, Gantt.DesiredSize.Height)));
bmp = new RenderTargetBitmap(
(int)Gantt.DesiredSize.Width, (int)Gantt.DesiredSize.Height, 96, 96, PixelFormats.Default);
bmp.Render(chartGrid);
width = (int)(Gantt.DesiredSize.Width - chartGrid.ActualWidth);
CroppedBitmap crpBmp = new CroppedBitmap(bmp, new Int32Rect(0, 0, width, (int)Gantt.DesiredSize.Height));
bitmapEncoder = new PngBitmapEncoder();
bitmapEncoder.Frames.Add(BitmapFrame.Create(crpBmp));
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.FileName = "Untitled";
saveFileDialog.DefaultExt = "png";
saveFileDialog.Filter = "PNG Files (*.png)|*.png|Jpeg Files (*.jpg)|*.jpg|Bitmap Files (*.bmp)|*.bmp|All files (*.*)|*.*";
saveFileDialog.FilterIndex = 1;
if (saveFileDialog.ShowDialog() == true)
{
using (Stream stream = saveFileDialog.OpenFile())
{
bitmapEncoder.Save(stream);
stream.Close();
System.Diagnostics.Process.Start(saveFileDialog.FileName);
}
}
}
Attachment:
Untitled_e5e3548a.zip