2011-03-24 11 views
5

Bir WriteableBitmap'ım var ve kullanıcının bunu basit bir bitmapmiş gibi çizmesini istiyorum.WriteableBitmap'te dize nasıl yazabilirim?

Nasıl yapabilirim?

+0

Varolan bir WritableBitmap'in üzerine bir metin dizisi oluşturmaya mı çalışıyorsunuz? –

+0

evet - Üzerine bir metin dizesi oluşturmam gerekiyor. – Yanshof

cevap

7

Kodda bir TextBlock denetimi kurabilir, Metin özelliğini string ile ayarlayabilir ve bu TextBlock ile WritableBitmap'in Render() yöntemini çağırabilirsiniz. TextBlock asla görsel ağacın üzerinde olmak zorunda değildir, ancak metnin gösterilmesini sağlamak için bitmap'te Invalidate() öğesini çağırmanız gerekecektir.

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 kullanmıyorum ve şu hataları alıyorum: Hata 1 'System.Windows.Media.Imaging.WriteableBitmap' 'Render' için bir tanım içermiyor ve 'Render' türünde bir ilk bağımsız değişken kabullenmiyor 'System.Windows.Media.Imaging.WriteableBitmap' bulunamadı ve Hata 2 'System.Windows.Media.Imaging.WriteableBitmap' 'Invalidate' için bir tanım içermiyor ve 'Hiçbir uzantı' türü bir ilk bağımsız değişken kabul etmiyor 'Invalidate' 'System.Windows.Media.Imaging.WriteableBitmap' - Silverlight kullanmıyorum çünkü bu mu? – zetar

+0

@zetar WriteableBitmapEx kitaplığına ihtiyacınız var. http://writeablebitmapex.codeplex.com –

İlgili konular