보고서 중에 생성 된 차트를 인쇄하려고합니다. 차트를 DocumentPaginator 문서에 넣을 수는 있지만 페이지 크기에 맞게 차트의 크기를 조정하는 데 문제가 있습니다. 차트 크기를 변경하는보고 프로그램의 크기를 변경하면 차트의 크기 조정에 영향을 미친다는 것을 알았습니다. 이 실현은 차트의 ActualWidth
과 ActualHeight
이 스케일링과 직접적으로 관련되어 있음을 보여주었습니다.차트 복사/복사 및 인쇄. ActualWidth & ActualHeight의 문제점
myChart.Width = newWidth;
myChart.Height = newHeight;
Measure(myChart.RenderSize);
Arrange(new Rect(0, 0, newWidth, newHeight));
을하지만이보고 프로그램에서 내 비주얼 차트의 크기를 조정하고 인쇄 할 수있는 차트가 두 번째가 인쇄 될 때까지 새로운 크기로 크기를 조정하지 않을 발생 :
나는 시도했다.myChart가 reportChart에 연결되었음을 알았습니다. reportChart를 myChart에 복사/복제하려했습니다.
내가 시도 :public class Copy<T>
{
public static T DeepCopy<T>(T element)
{
string xaml = XamlWriter.Save(element);
StringReader xamlString = new StringReader(xaml);
XmlTextReader xmlTextReader = new XmlTextReader(xamlString);
var DeepCopyobject = (T)XamlReader.Load(xmlTextReader);
return DeepCopyobject;
}
}
또는
myChart = XamlReader.Parse(XamlWriter.Save(reportChart.DataContext)) as Chart
하지만
string xaml = XamlWriter.Save(element);
이 너무 오래 걸릴 것 모두가 유래을 일으킬 것입니다.
내 복사본을 만들
myChart = new Chart() { DataContext = reportChart.DataContext }
를 사용하고 있지만, ActualWidth와의 ActualHeight는 건너 '0'차트의 DataContext를 올바르게 복사 한 경우 그래서 나는 말할 수 없다.
내가 원하는 크기로 업데이트 내 차트의 ActualWidth과의 ActualHeight 말을
myChart.Width = newWidth;
myChart.Height = newHeight;
myChart.Measure(new System.Windows.Size(newWidth, newHeight));
myChart.Arrange(new Rect(0, 0, newWidth, newHeight));
또는를 사용하여 크기를 조정할 내 차트를 얻을 않았지만, 차트가 있어야 할 곳에 내 문서에 검은 이미지를 얻고
.
그럼 선택한 용지 크기에 맞도록 차트를 올바르게 인쇄하려면 어떻게합니까?