2011-03-24 10 views
5

Tengo un WriteableBitmap y me gustaría que el usuario pueda dibujar sobre él como si fuera un simple mapa de bits.¿Cómo puedo escribir una secuencia en WriteableBitmap?

¿Cómo puedo hacerlo?

+0

¿Estás hablando de representar una cadena de texto sobre un WritableBitmap existente? –

+0

sí, necesito renderizar una cadena de texto sobre él. – Yanshof

Respuesta

7

Puede configurar un control TextBlock en el código, establecer la propiedad Text con la cadena y llamar al método Render() del WritableBitmap con ese TextBlock. El TextBlock nunca tiene que estar en el árbol visual, pero tendrá que llamar a Invalidate() en el mapa de bits después para que aparezca el texto.

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

No estoy usando Silverlight y recibo estos errores: El error 1 'System.Windows.Media.Imaging.WriteableBitmap' no contiene una definición para 'Render' y ningún método de extensión 'Render' acepta un primer argumento de tipo Se pudo encontrar 'System.Windows.Media.Imaging.WriteableBitmap' y el Error 2 'System.Windows.Media.Imaging.WriteableBitmap' no contiene una definición para 'Invalidar' y ningún método de extensión 'Invalidar' al aceptar un primer argumento de tipo 'System.Windows.Media.Imaging.WriteableBitmap' - ¿Esto es porque no estoy usando Silverlight? – zetar

+0

@zetar necesita la biblioteca WriteableBitmapEx. http://writeablebitmapex.codeplex.com –

Cuestiones relacionadas