在RenderTargetBitmap中捕捉到像素

时间:2014-10-06 11:20:49

标签: c# wpf

我编写此代码以在RenderTargetBitmap中绘制文本:

        DrawingVisual drawingVisual = new DrawingVisual();

        using (DrawingContext drawingContext = drawingVisual.RenderOpen())
        {
            drawingContext.DrawText(new FormattedText("yes", CultureInfo.GetCultureInfo("en-us"),
                FlowDirection.LeftToRight, new Typeface("Times New Roman"),
                30, Brushes.Red), new Point(10, 10));
        }

        RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap(200, 200, 96, 96, PixelFormats.Pbgra32);

        renderTargetBitmap.Render(drawingVisual);

        image1.Source = renderTargetBitmap;//image1 is an Image control

结果是:

enter image description here

如何消除这种模糊效果?此效果来自RenderTargetBitmap,而不是来自Image控件。

1 个答案:

答案 0 :(得分:0)

您可以使用DrawingImage代替RenderTargetBitmap

var drawingGroup = new DrawingGroup();
using (var drawingContext = drawingGroup.Open())
{
    drawingContext.DrawText(
        new FormattedText("yes", 
            CultureInfo.GetCultureInfo("en-us"), 
            FlowDirection.LeftToRight, 
            new Typeface("Times New Roman"), 
            30, 
            Brushes.Red),
        new Point(10, 10));
}
image1.Source = new DrawingImage(drawingGroup);

您需要创建DrawingGroup并从那里打开DrawingContext