2012-04-18 5 views
7

Я работаю над компонентом диаграммы WPF. Мне нужно реализовать функцию рендеринга Chart Visual для метафайла (WMF/EMF), чтобы пользователь мог вставлять этот файл в любой офисный продукт, например Word или Powerpoint, и изменять размер файла без ущерба для качества отображаемого изображения.Оказание визуализации WPF в файле WMF/EMF

Я видел некоторые подобные вопросы здесь, но ни один из них не дает никаких полезных ответов.

Я узнал из некоторых сообщений, что WPF не поддерживает визуализацию визуальных EMF/WMF из-за проблем с безопасностью, но там должна быть какая-то замена для него, которая должна позволить взаимодействие, такое как EMF/WMF, предоставляемое для приложения и офиса на основе Winform костюм или мс-краска.

Любые предложения для продвижения вперед приветствуются, спасибо.

ответ

3

Да, экструдированная печать в порядке, но вы хотели бы получить в метафайл, нет? Только видел это, которое может помочь взглянуть на самой нижней набор ссылок

Does WPF support reading/writing WMF/EMF files natively?

выглядит как эти 2 ссылки могут быть интересны

http://softronix.com/download/WpfToWmfClipboard.zip

http://xamltoys.codeplex.com/

+0

Я ценю ваш ответ Sacha, XamlToys может быть хорошим решением, но с их помощью требуется много времени для рендеринга EMF, хотя на данный момент оно выглядит как единственное решение. – Pank

+0

GREAT !!!!!!! Большое спасибо ! –

1

Я бы подумал, что вы хотели бы использовать класс RenderTargetBitmap, чтобы сначала получить изображение своего элемента управления, а затем преобразовать его в EMF.

На самом деле этот блог дает очень хорошую отправную точку: http://www.switchonthecode.com/tutorials/wpf-tutorial-getting-from-wpf-to-a-metafile-and-onto-the-clipboard

Тем не менее, так как вы работаете с BMP (который является то, что вы получите от WPF) полученное изображение не может быть вектор на основе будет даже если вам удастся сохранить его как файл EMF.

Anway Я надеюсь, что поможет вам в некотором роде

+0

спасибо sacha, я знаю, как вы предложили, это не поможет мне масштабировать полученную EMF в слове ms или powerpoint, поскольку она все равно потеряет качество графики при масштабировании. Вы знаете какой-либо другой способ, с помощью которого я могу визуализировать визуальную визуальную эмф напрямую или с помощью любого другого межмидового формата. – Pank

+0

Как я знаю, мы можем визуализировать xps, который представляет собой векторный формат, и я уже использовал это для реализации функций печати, но буфер обмена или слово ms не оснащены функциональностью для принятия xps в качестве формата ввода и визуализации. – Pank

1

У меня есть решение это, Я использовал XamlToys для преобразования визуального изображения в Emf следующие шаги для достижения этого: Получить элемент структуры. Преобразуйте его в XPS Затем преобразуйте его в XamlStream Затем преобразуйте его в EMF с помощью XamlToys. Он хорошо работает и дает высококачественную эмблему.

Попробуйте, и дайте мне знать, если это поможет.

+0

Панк, спасибо за ваше резюме с 4 мая. Я пробовал. Примечание для тех, кто хочет использовать решение: XamlToys не реализовал Visual3D (GetDrawingFromXaml() генерирует исключение «Visual3D не реализовано»).Поэтому XamlToys не является решением, если используется Visual3D. – Falo

Смежные вопросы