如何克隆画布控制wpf?

如何克隆画布控制wpf?,wpf,canvas,mvvm,rotatetransform,rendertransform,Wpf,Canvas,Mvvm,Rotatetransform,Rendertransform,目前我正在开发桌面应用程序。其中,我使用打印对话框的PrintVisual方法打印画布控件。我将画布作为命令参数从一个视图传递到另一个视图模型。 在视图模型中,我正在画布上执行旋转变换(我希望以180度旋转打印我的内容),但我只希望它在视图模型中,而不是在视图中 目前我面临的一个问题是,我的画布控件也在视图中旋转,这是我不想要的。 请帮我解决我的问题。 提前感谢。您可以在新的画布上进行转换,将原始的画布转换为背景 PS:有一个可接受可视的 编辑 这应该给你一个想法: Canvas printCa

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

您可以在新的
画布
上进行转换,将原始的
画布
转换为
背景

PS:有一个可接受
可视

编辑

这应该给你一个想法:

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

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

  • 景观
  • 纵向(默认)
  • 反向地景
  • 反向端口
  • 不为人知
像这样:

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

你能解释一下如何使用VisualBrush吗?因为我对使用viewbox或viewport@taras感到困惑