2012-04-18 3 views
7

WPF 차트 구성 요소를 작업 중입니다. Chart Visual을 메타 파일 (WMF/EMF)로 렌더링하는 기능을 구현해야 사용자가 Word 나 Powerpoint와 같은 모든 사무용품에 해당 파일을 붙여 넣을 수 있으며 렌더링 된 이미지의 품질에 영향을주지 않고 파일의 크기를 조정할 수 있습니다.WPF 비주얼을 WMF/EMF 파일로 렌더링

여기에 관해서 비슷한 질문이 몇 개 있었지만 유용한 답을 제시하지 못했습니다.

저는 WPF가 보안 문제로 인해 시각적으로 EMF/WMF 렌더링을 지원하지 않는다는 것을 알았지 만 Winform 기반 응용 프로그램 및 사무실에서 제공되는 EMF/WMF와 같은 상호 작용을 허용해야하는 일부 대체 기능이 있어야합니다. 정장 또는 ms 페인트.

전진에 대한 제안 사항은 환영합니다. 감사합니다.

답변

3

그래 XPS 인쇄 괜찮에 그것이 당신 도움이되기를 바랍니다하지만 당신은 아니, 메타 파일에 들어가 싶어? 그냥

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

대단한 !!!!!!! 고마워요! –

1

당신이 원하는 것은 RenderTargetBitmap 클래스를 사용하여 컨트롤 이미지를 먼저 얻은 다음 EMF로 변환하는 것입니다.

는 사실이 블로그 게시물은 당신에게 아주 좋은 출발점을 제공합니다 : 당신이 결과 이미지를 벡터 기반되지 않을 것이다 (당신이 WPF에서 얻을 것이다 무엇 인)를 BMP로 작업하기 때문에 고 말했다

http://www.switchonthecode.com/tutorials/wpf-tutorial-getting-from-wpf-to-a-metafile-and-onto-the-clipboard EMF 파일로 저장할 때도 마찬가지입니다.

Anway 나는 어떤 방법

+0

감사합니다. sacha, 나는 당신이 제안한 방식을 알고 있습니다. 스케일링에서 그래픽 품질을 잃어 버리므로 결과적으로 EMF 또는 MSP로 EMF를 스케일링하는 데 도움이되지 않습니다. 다른 방법으로 시각적으로 emf를 렌더링하거나 다른 중간 형식을 사용하는 방법을 알고 계십니까? – Pank

+0

필자는 visual을 벡터 기반 형식 인 xps로 렌더링 할 수 있고 이미 인쇄 기능을 구현하는 데 사용했지만 클립 보드 나 ms 단어에는 xps를 입력 형식으로 받아들이고 렌더링하는 기능이 없습니다. – Pank

1

나는 솔루션을 가질 수있는 이것을보고 this, XamlToys를 사용하여 Emf로 시각을 변환했습니다. 다음 단계는 다음과 같습니다. 프레임 워크 요소 가져 오기. XPS로 변환 그런 다음 XamlStream 으로 변환 한 다음 XamlToys를 사용하여 EMF로 변환하십시오. 잘 작동하고 고품질 Emf를 제공합니다.

도움이 될지 알려주세요.

+0

Pank, 5 월 4 일 요약 해 주셔서 감사합니다. 솔루션을 사용하고자하는 사람들을위한 메모 : XamlToys는 Visual3D를 구현하지 않았습니다 (GetDrawingFromXaml()은 'Visual3D가 구현되지 않았습니다'예외를 throw합니다).따라서 XamlToys는 Visual3D를 사용하는 경우 솔루션이 아닙니다. – Falo