WPF - клонировать содержимое контейнера как геометрию - PullRequest
1 голос
/ 21 июня 2011

Хорошо, мне очень не повезло, когда я использовал кисть для рисования, чтобы попытаться распечатать страницы из подразделов большого холста. Работает в целом, но имеет тенденцию растеризовать некоторые части и создает плохой вывод. (Я задавал вопросы об этом раньше).

Итак, теперь я создаю кучу копий холста с одинаковым содержимым и прижимаю к отдельным частям для печати на одной странице. Это работает, но, очевидно, медленно и будет только медленнее с большим количеством страниц.

Итак, что может хорошо работать, есть ли способ сделать что-то похожее на визуальную кисть, но вместо этого сделать так, чтобы оно копировало содержимое из своего «вида» в качестве нового геометрического объекта какого-либо вида? Содержимое моего холста представляет собой комбинацию линий, изображений и т. Д., Поэтому было бы неплохо иметь возможность определить вид кисти и сказать ей сделать копию пересечения всех векторных и растровых объектов видимыми в новом Контейнер какой-то.

Это позволило бы мне использовать один холст и делать «снимки» содержимого в разных местах, которые будут использоваться для печати отдельных страниц.

1 Ответ

0 голосов
/ 21 июня 2011

Вы можете использовать RenderTargetBitmap, чтобы получить растровую копию Canvas, а затем обрезать нужную часть.Если вам конкретно нужна векторная копия, вам нужно записать холст в XPS.

Редактировать: Если вы хотите векторную копию, пробовали использовать XamlWriter.Save, отредактируйтеXaml, а затем XamlReader.Load?

...