есть проект в котором на элементах Canvas генерируются элементы chart, далее это идет на многостраничную печать проблема в том, что на первой странице графики имеют ЛИНИЮ, а на 2й и последующих страницах этих линий нет, только подложка... что интересное на 2й и следующей есть маштабная разметка, т.е. только не рисуется сама линия... прикрепляю: то что получает при печати 1 стрраница 2 и последуюшщиекод для печати | Код | ... Canvas[] pages = new Canvas[all_page];
for (int i = 0; i < all_page; i++) { pages[i] = page_new3((4 * i), all_page, count_gr, date_time, value, i); //LayoutRoot.Children.Add(pages[i]); }
PrintDocument multidoc = new PrintDocument(); int index = 0; multidoc.PrintPage += (s, arg) => { StackPanel host = new StackPanel(); while (index < pages.Count()) {
host.Children.Add(pages[index]);
host.Measure(new Size(arg.PrintableArea.Width, double.PositiveInfinity));
if (host.DesiredSize.Height > arg.PrintableArea.Height && host.Children.Count > 1) { host.Children.Remove(pages[index]); arg.HasMorePages = true; break; } index++; } arg.PageVisual = host; }; multidoc.Print("Отчет №3"); ...
|
и то как формируется график | Код | Chart LS = new Chart() { Width = page_w+112, Height = 200, //BorderBrush = mySolidColorBrush, BorderThickness = new Thickness(0), Margin = new Thickness(padding_lr, line_y, padding_lr, 0), Padding = new Thickness(0) };
LineSeries NewChart = new LineSeries(); //NewChart.Style = (Style)();
ObservableCollection<ChartPoint> OC = new ObservableCollection<ChartPoint>();
for (int i = 0; i < date_time.Count(); i++) { //System.Windows.Browser.HtmlPage.Window.Alert("value_level = " + value_level); OC.Add(new ChartPoint { Value = value[value_level,i], DateTime = date_time[i] }); }
NewChart.ItemsSource = OC;
Style style = new Style(typeof(Control)); Setter st1 = new Setter(Control.OpacityProperty, Opacity); style.Setters.Add(st1);
NewChart.DataPointStyle = style; NewChart.DependentValuePath = "Value"; NewChart.IndependentValuePath = "DateTime"; LS.Series.Add(NewChart);
|
|