如何克隆Canvas Control wpf?

时间:2013-06-15 12:46:25

标签: wpf canvas mvvm rotatetransform rendertransform

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

2 个答案:

答案 0 :(得分:0)

您可以使用原始Canvas的{​​{3}}作为Canvas,在新的Background上进行转换。

PS:有一个VisualBrush接受Visual

修改

这应该会给你一个想法:

Canvas printCanvas = new Canvas();
printCanvas.Background = new VisualBrush(yourOriginalCanvas);
printCanvas.RenderTransform = new RotateTransform(180);

答案 1 :(得分:0)

我认为您可以使用PrintDialogs PrintTicket.PageOrientation属性来处理这样的枚举:

  • 风景
  • 人像(默认)
  • ReverseLandscape
  • ReversePortrait
  • 未知

像这样:

PrintDialog pd = new PrintDialog();
pd.PrintTicket.PageOrientation = PageOrientation.ReversePortrait;