2011-03-24 104 views
5

我有一個WriteableBitmap,並希望用戶能夠將它畫出來,就好像它是一個簡單的位圖。如何在WriteableBitmap上編寫字符串?

我該怎麼辦?

+0

你說的是在現有的WritableBitmap之上渲染一個文本字符串嗎? – 2011-03-24 22:03:29

+0

是的 - 我需要渲染一個文本字符串。 – Yanshof 2011-03-24 22:40:54

回答

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'沒有包含'Render'的定義,也沒有擴展方法'Render'接受類型的第一個參數'System.Windows.Media.Imaging.WriteableBitmap'可以被找到,Error 2'System.Windows.Media.Imaging.WriteableBitmap'不包含'Invalidate'的定義,並且沒有擴展方法'Invalidate'接受類型的第一個參數'System.Windows.Media.Imaging.WriteableBitmap' - 這是因爲我沒有使用Silverlight嗎? – zetar 2013-10-17 18:48:21

+0

@zetar你需要WriteableBitmapEx庫。 http://writeablebitmapex.codeplex.com – 2014-05-20 14:31:40

相關問題