Как клонировать Canvas Control wpf?

В настоящее время я работаю над настольным приложением. В котором я печатаю Canvas Control, используя PrintVisual Метод диалогового окна печати. Я передаю холст из вида для просмотра модели в качестве параметра команды. В представлении Модель я выполняю Преобразование поворота на холсте (я хочу напечатать свой контент с поворотом на 180 градусов). Но я хочу, чтобы это было только в моей модели просмотра, а не в настоящее время. В настоящее время я сталкиваюсь с проблемой, заключающейся в том, что мой элемент управления холст также вращается в представлении, которое я не хочу Пожалуйста, помогите мне решить мою проблему. Заранее спасибо.

2 ответа

Я думаю, что вы можете обойти это свойство PrintDialogs PrintTicket.PageOrientation, которое принимает такое перечисление:

  • Пейзаж
  • Портрет (по умолчанию)
  • ReverseLandscape
  • ReversePortrait
  • неизвестный

Вот так:

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

You can make your transformations on a new Canvas с VisualBrush of your original Canvas как Background,

PS: There is a VisualBrush constructor overload that accepts a Visual,

РЕДАКТИРОВАТЬ

This should give you an idea:

Canvas printCanvas = new Canvas();
printCanvas.Background = new VisualBrush(yourOriginalCanvas);
printCanvas.RenderTransform = new RotateTransform(180);
Другие вопросы по тегам