2011-03-24 102 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

相关问题