Windows Presentation Foundation può leggere/scrivere file WMF/EMF senza dover utilizzare WinForms Interop o Win32.WPF supporta la lettura/scrittura di file WMF/EMF in modo nativo?
In caso contrario, qual è la ragione?
Windows Presentation Foundation può leggere/scrivere file WMF/EMF senza dover utilizzare WinForms Interop o Win32.WPF supporta la lettura/scrittura di file WMF/EMF in modo nativo?
In caso contrario, qual è la ragione?
Una veloce ricerca su MSDN rivela a thread contenente un post di Peggi Goodwin, un PM a Microsoft:
WPF non supporta l'EMF e formati di immagine WMF. Questi formati sono più suscettibili alle vulnerabilità della sicurezza rispetto ad altri formati di immagine, quindi non intendiamo supportarli.
L'ho fatto !!!
Sto utilizzando il grafico WPF di ComponentOne nel mio codice reale ma per mantenere l'esempio semplice ho appena fatto un pulsante. Ma funziona su widget Wpf complessi. Caratteri, Trasparenza, AntiAlia ecc. Tutto funziona. E posso incollare in Word e cambiare etichette su grafici ecc.
Fondamentalmente decifro XAML in XPS, quindi lo importa nuovamente in XAML.
Quindi ho utilizzato un progetto open source che converte XAML in WMF chiamato XAMLToys.
XAMLToys fallirebbe il 99% del tempo, perché è possibile oggetti non di serie complessa XAML
http://softronix.com/download/WpfToWmfClipboard.zip
Grandi complimenti a questi due progetti
http://khason.net/blog/converting-fixeddocument-xpsdocument-too-to-flowdocument/
Sì, grazie Roberto. Avevo notato la stessa discussione e non potevo credere che le vulnerabilità della sicurezza avrebbero semplicemente distrutto il supporto per questi formati di file senza che venissero sostituiti da un altro formato. – user62572
Abbiamo aggiornato la nostra applicazione WinForms per utilizzare WPF e abbiamo riscontrato gli stessi problemi con il supporto metafile, che usiamo per il copia-incolla nei prodotti Office. Attualmente traduciamo manualmente da XAML in metafile per questo (dopo aver convertito il nostro XAML complesso in semplici Percorsi e Glifi usando XPS). –