/ / WPF - clona il contenuto del contenitore come geometria - c #, .net, wpf, stampa, pennello visivo

WPF - clona il contenuto del contenitore come geometria - c #, .net, wpf, printing, visualbrush

Ok ho avuto molta sfortuna usando un visualbrushper provare a stampare pagine da sottosezioni di una tela di grandi dimensioni. Funziona in generale, ma tende a rasterizzare alcune parti e crea un output scadente. (Ho già fatto domande al riguardo).

Quindi ora sto creando un mucchio di copie ditela con lo stesso contenuto e pizzicando verso il basso su porzioni singole da stampare come una singola pagina. Funziona, ma ovviamente è lento e diventerà più lento solo con più pagine.

Quindi ciò che potrebbe funzionare bene è, c'è un modo per farlofare qualcosa di simile a un pennello visivo, ma invece fargli copiare i contenuti dalla sua "vista" come un nuovo oggetto di geometria di qualche tipo? I contenuti della mia tela sono una combinazione di linee, immagini, ecc. Quindi sarebbe bello poter definire la vista di un pennello e dirgli di rendere visibile una copia di intersezione di tutti gli oggetti vettoriali e raster in un nuovo contenitore di qualche tipo.

Ciò mi consentirebbe di utilizzare un'unica tela e di scattare "istantanee" dei contenuti in luoghi diversi da utilizzare per la stampa delle singole pagine.

risposte:

0 per risposta № 1

È possibile utilizzare RenderTargetBitmap per ottenere una copia bitmap dell'area di disegno, quindi ritagliare la porzione desiderata. Se si desidera specificamente una copia vettoriale, è necessario scrivere la tela su XPS.

Modificare: Se vuoi una copia vettoriale, hai provato a usare XamlWriter.Save, modifica Xaml e quindi XamlReader.Load?