2012-06-28 4 views
2

C#/XAML을 사용하여 메트로 스타일의 페인트와 같은 페인트를 개발 중입니다. 캔버스에 그려지는 모든 내용을 이미지로 저장하려고합니다. 이 솔루션을 확인했지만 도움이되지 않았습니다.캔버스를 C#/XAML로 메트로 스타일 앱의 이미지로 저장

Save canvas to bitmap http://blogs.msdn.com/b/saveenr/archive/2008/09/18/wpf-xaml-saving-a-window-or-canvas-as-a-png-bitmap.aspx

그래서 내가 어떻게 이미지로 캔버스 내용을 저장 할 수 있습니까? 샘플 코딩을 도와주세요.

답변

0

는 현재 상자에서 지원되지 않는 것 같다

http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/dd66c749-efed-4b55-a716-e0aa3a637d28

하고 HTML5/자바 스크립트 메트로 앱 때 당신이 할 수 있지만 :

http://social.msdn.microsoft.com/Forums/en-US/winappswithhtml5/thread/cf8c17dc-68d4-4777-951f-bb7f0665bd06

+0

이 대답은 Windows 8.1에서 더 이상 올바르지 않다고 생각합니다. 내 대답을 참조하십시오. – satur9nine

0

Silverlight 및 WP7과 같은 다른 xaml 프레임 워크의 표준 접근 방식은 WriteableBitmap을 사용하는 것이었지만 WinRT의 버전에는 xaml 요소를 사용하는 생성자가 없으므로 최신 API에 대해 현재 불가능하다고 생각합니다 .

미안 수 없습니다 도움이/

+0

감사합니다. Nigel, [WriteableBitmapEx] (http://writeablebitmapex.codeplex.com/)를 보았습니다. 어떻게 구현할 수 있습니까? 당신은 저에게 어떤 데모를 주시겠습니까? – Xyroid

+0

WriteableBitmapEx는 텍스트를 비트 맵으로 렌더링하는 방법을 제공하지 않습니다. –

0

한 가지 해결 방법의 DirectWrite와 Direct2D의를 사용하는 것입니다. 조금 복잡하지만, 어느 시점에서 라이브러리를 사용할 수있게 만들 수도 있습니다. 우리는 WPF와 함께 할하는 데 사용되는 것처럼

+0

사실 C#/XAML로 개발 중입니다. DirectWrite – Xyroid

+0

으로 Direct2D에 대한 샘플/예제/코드 스 니펫을 제공해 주시겠습니까? 아직 작성하지 않았지만 Microsoft의 Metro 샘플에 Direct2D로 텍스트를 렌더링하고 이미지 파일에 저장하는 코드가 포함되어 있다고 생각합니다. 사용할 수있는 라이브러리가있는 경우 알려 드리겠습니다. 그것은 며칠 또는 몇 주일이 걸릴 수도 있습니다. –

+0

Ok Flip, 고맙습니다. – Xyroid

1

Sascha의 대답은 더 이상 Windows 8.1에 해당하지 않습니다. 렌더링 된 XAML을 비트 맵으로 변환 할 수있는 새로운 RenderTargetBitmap 클래스가 있습니다.

참조 : 내가 XAML 화면에, 그렇지 않으면하지 현재 축소 또는 것을 렌더링 할 수없는 것 그러나 http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.media.imaging.rendertargetbitmap.aspx

. 어떤 도움을 주시면 감사하겠습니다!

+0

Windows 8의 경우에도 내 대답은 여전히 ​​유효합니다. Windows 8.1에서는 새로운 API가 도입되었으며 RenderTargetBitmap은 새로운 API 중 하나입니다. 그것은 Windows 8.1 및 가장 가능성이 최신 버전에서 사용할 수 있습니다. 이 함수는 시각적 내용 (XAML 시각적 트리)을 비트 맵에 복사하도록 명시 적으로 설계되었습니다. 화면에 보이지 않는 좌표에 요소를 추가하는 것 (그러나 화면이 충분히 커지면) UIElement를 렌더링하는 것과 같이 트릭을 사용하는 것이 좋습니다. 테스트는 아니지만 아이디어 일 수 있습니다. 이 질문을 새로운 질문으로 만드십시오 (8.1을 목표로 함). – Sascha

+0

감사합니다. 여기에 새 질문을 추가했습니다. http://stackoverflow.com/questions/18419810/in-winrt-c-sharp-how-do-i-save -an-offscreen-xaml-tree-using-rendertargetbitmap – satur9nine

관련 문제