如題文字最下一行,少了一部分。
如果RenderTargetBitmap的大小设置设置成固定大小是不会出现上面的问题。
但是这里要自动根据DrawingVisual 的大小创建图片的大小,就会出现上面的问题。
或者有没有其他方法将文字绘一个图片,WPF方法。
请问该如果解决。
private void DrawString()
{
DrawingVisual dv = new DrawingVisual();
DrawingContext dc = dv.RenderOpen();
dc.DrawText(new FormattedText("微風迎客,軟語伴茶\r\n微風迎客,軟語伴茶\r\n微風迎客,軟語伴茶\r\n微風迎客,軟語伴茶",
CultureInfo.CurrentCulture,
FlowDirection.LeftToRight,
new Typeface(textBox1.FontFamily, textBox1.FontStyle, textBox1.FontWeight, textBox1.FontStretch),
100d,
Brushes.SteelBlue),
new Point(0, 0));
dc.Close();
System.IO.FileStream fs = new System.IO.FileStream(@"F:\text.png", System.IO.FileMode.Create);
RenderTargetBitmap bmp = new RenderTargetBitmap((int)(dv.ContentBounds.Width), (int)(dv.ContentBounds.Height), 96d, 96d, PixelFormats.Pbgra32);
bmp.Render(dv);
BitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bmp));
encoder.Save(fs);
fs.Close();
}
帮顶...
试了一下~
RenderTargetBitmap bmp = new RenderTargetBitmap((int)(dv.ContentBounds.Width), (int)(dv.ContentBounds.Height), 90d,90d, PixelFormats.Default);
dpiX
类型:System.Double
位图的水平 DPI。
dpiY
类型:System.Double
位图的垂直 DPI。
调节这两个参数就可以获得正常的图片。
之前文字缺失具体是因为什么,这两者有什么关系暂时还不知道。