Попытка создать страницу для печати. У меня есть следующие, в качестве примера - в основном на основе этого http://tech.pro/tutorial/881/printing-in-wpf:Почему элементы на дочернем холсте не печатаются с помощью WPF
PrintDialog printDialog = new PrintDialog();
printDialog.PageRangeSelection = PageRangeSelection.AllPages;
printDialog.UserPageRangeEnabled = true;
var doPrint = printDialog.ShowDialog();
if (doPrint == true)
{
StackPanel myPanel = new StackPanel();
myPanel.Margin = new Thickness(15);
Image myImage = new Image();
myImage.Width = 128;
myImage.Stretch = Stretch.Uniform;
myImage.Source = new BitmapImage(new Uri("C:\\Tree.jpg", UriKind.Absolute));
myPanel.Children.Add(myImage);
TextBlock myBlock = new TextBlock();
myBlock.Text = "A Great Image.";
myBlock.TextAlignment = TextAlignment.Center;
myPanel.Children.Add(myBlock);
Canvas canvasL = new Canvas();
canvasL.Width = 300;
canvasL.Height = 300;
canvasL.Background = Brushes.LightSteelBlue;
myPanel.Children.Add(canvasL);
Line l = new Line();
l.X1 = 0;
l.Y1 = 0;
l.Y1 = 10000;
l.Y2 = 10000;
l.Stroke = Brushes.Black;
l.StrokeThickness = 5;
canvasL.Children.Add(l);
myPanel.Measure(new Size(printDialog.PrintableAreaWidth,
printDialog.PrintableAreaHeight));
myPanel.Arrange(new Rect(new Point(0, 0),
myPanel.DesiredSize));
printDialog.PrintVisual(myPanel, "A Great Image.");
}
изображение показывает. Текст показывает. Холст появляется в виде кобальтово-синего квадрата, но линии нигде не видно.
Что дает?
«l» не имеет SetProperty, поэтому я немного смущен. Не достаточно ли установить пару X1/Y1 X2/Y2, чтобы он знал, как визуализировать? Достаточно, если он на экране .. – user340535
Извините, это SetValue (... –
Ни Canvas.SetTop (l, 10d), ни l.SetValue (Canvas.TopProperty, 10d), не имеет значения. – user340535