【发布时间】:2018-02-23 12:10:01
【问题描述】:
public void RenderCanvasImage(int maxRight, int maxBottom, Canvas surface, Transform transform)
{
RenderTargetBitmap renderBitmap = new RenderTargetBitmap(maxRight, maxBottom, 96d, 96d, PixelFormats.Pbgra32);
renderBitmap.Render(surface);
PrintDialog dialog = new PrintDialog();
if (dialog.ShowDialog() != true)
{
return;
}
Grid grid = new Grid();
Image myImage = new Image();
myImage.Source = renderBitmap;
myImage.Stretch = Stretch.Uniform;
grid.Children.Add(myImage);
Grid.SetColumn(myImage, 0);
Grid.SetRow(myImage, 1);
grid.Measure(new Size(dialog.PrintableAreaWidth, dialog.PrintableAreaHeight));
grid.Arrange(new Rect(new Point(0, 0), grid.DesiredSize));
dialog.PrintVisual(grid, "My Canvas");
surface.LayoutTransform = transform;
}
我正在使用上述代码通过 Microsoft Print to PDF 打印我的画布。它在所有情况下都可以正常工作,但是当我在文件名中输入逗号时,例如 (Print,Test) 在打印时。它不会保存我的文件,也不会提供任何 错误/异常 代码,我可以通过这些代码提示用户更改文件名。
请帮我解决我的问题。
【问题讨论】: