2011-03-24 4 views
5

필자는 WriteableBitmap을 가지고 있으며 사용자가 간단한 비트 맵처럼 그릴 수 있도록하고 싶습니다.어떻게 WriteableBitmap에 문자열을 쓸 수 있습니까?

어떻게 할 수 있습니까?

+0

기존 WritableBitmap 위에 텍스트 문자열을 렌더링하는 것에 대해 이야기하고 있습니까? –

+0

예 - 텍스트 위에 문자열을 렌더링해야합니다. – Yanshof

답변

7

코드에서 TextBlock 컨트롤을 설정하고 문자열로 Text 속성을 설정 한 다음 해당 TextBlock을 사용하여 WritableBitmap의 Render() 메서드를 호출 할 수 있습니다. TextBlock이 시각적 트리에있을 필요는 없지만 텍스트를 표시하려면 비트 맵에서 Invalidate()를 호출해야합니다.

private void RenderString(WriteableBitmap bitmap, string stringToRender) 
{ 
    TextBlock textBlock = new TextBlock(); 
    textBlock.Text = stringToRender; 

    // set font, size, etc. on textBlock 

    bitmap.Render(textBlock, null); 
    bitmap.Invalidate(); 
} 
+0

Silverlight를 사용하지 않고 이러한 오류가 발생합니다. 오류 1 'System.Windows.Media.Imaging.WriteableBitmap'에 '렌더링'에 대한 정의 및 확장 메서드가없는 '렌더링'유형의 첫 번째 인수를 허용하지 않습니다. 'System.Windows.Media.Imaging.WriteableBitmap'을 (를) 찾을 수 없습니다. 오류 2 'System.Windows.Media.Imaging.WriteableBitmap'에 'Invalidate'에 대한 정의가없고 확장 메서드가 없습니다. 형식의 첫 번째 인수를 허용하는 'Invalidate' 'System.Windows.Media.Imaging.WriteableBitmap'- Silverlight를 사용하지 않기 때문에이 작업이 수행됩니까? – zetar

+0

@zetar WriteableBitmapEx 라이브러리가 필요합니다. http://writeablebitmapex.codeplex.com –

관련 문제