0

目前我正在开发桌面应用程序。其中,我正在使用打印对话框的 PrintVisual 方法打印 Canvas Control。我将画布从视图传递到视图模型作为命令参数。在视图模型中,我正在画布上执行旋转变换(我想通过 180 度旋转打印我的内容)。但我只希望它在我的视图模型中不在视图中目前我面临的一个问题是我的画布控件也在视图中旋转我不想要。请帮我解决我的问题。提前致谢。

4

2 回答 2

0

我认为您可以使用 PrintDialogs PrintTicket.PageOrientation 属性来解决它需要这样的枚举:

  • 景观
  • 纵向(默认)
  • 反向景观
  • 反向纵向
  • 未知

像这样:

PrintDialog pd = new PrintDialog();
pd.PrintTicket.PageOrientation = PageOrientation.ReversePortrait;
于 2013-06-15T13:28:29.573 回答
0

您可以使用原始的 as对新Canvas的进行转换。VisualBrushCanvasBackground

PS:有一个VisualBrush 构造函数重载,它接受一个Visual.

编辑

这应该给你一个想法:

Canvas printCanvas = new Canvas();
printCanvas.Background = new VisualBrush(yourOriginalCanvas);
printCanvas.RenderTransform = new RotateTransform(180);
于 2013-06-15T13:20:37.767 回答