wpf - WPF 的 ComponentOne : Text seems to render in the incorrect position?

标签 wpf pdf pdf-generation componentone

我在文档上呈现文本时遇到问题。具体来说,文本渲染过低。我试着在文本后面填充一个矩形,看看会发生什么,我发现它们呈现出轻微的偏移:

Offset text from background using the same rectangle.

这是我用来渲染框和文本的代码:

_doc.FillRectangle(Colors.LightGray, 36, 72, 37.344, 9);
_doc.DrawString("Lorem", new Font("Arial", 12), Colors.Black, 
   new Rect(36, 72, 37.344, 9));

我知道矩形 (9) 的高度似乎与字体 (12) 的高度不匹配,一开始我认为这可能是问题所在。然而,然后我对字体本身做了一个 MeasureString 并发现它的高度实际上是 9 而不是 12(我为此使用了即时窗口,这就是为什么它是图片而不是文本 block ):

Results of the Immediate Window calling MeasureString.

关于可能导致它的原因以及如何避免它的任何想法?

谢谢!

-阿里

最佳答案

  • 有几个帖子讨论了 WPF text rendering inconsistencies .

  • 其他帖子之一:WPF Text rendering problem , 表示如果文本已调整大小以跨像素显示,SnapToDevicePixels 可能会破坏文本呈现。 建议的答案是保留,

    SnapToDevicePixels = True on borders/backgrounds 但为 text elements 关闭它。

  • 至于您目前使用的方法。请查看我之前的一篇帖子:Increase bar chart values with button clicks : 我已经使用 DrawString()rectangle 中添加了一个字母。所有绘图都在 Panel 中完成。

代码: ...

   panel1.Paint += new PaintEventHandler(panel1_Paint);

        using (Graphics g = this.panel1.CreateGraphics())
        {
            Brush brush = new SolidBrush(Color.Green);
            g.FillRectangle(brush, px, py, 20, 20);                           
            Pen pen = new Pen(new SolidBrush(Color.White));
            g.DrawRectangle(pen, px, py, 20, 20);                    

            //add each total5Click into chart block
            g.DrawString((total5Times).ToString(), new Font("Arial", 7), 
            new SolidBrush(Color.AntiqueWhite),
            px + 1, py+8, StringFormat.GenericDefault);
            pen.Dispose();}
    ...

关于wpf - WPF 的 ComponentOne : Text seems to render in the incorrect position?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14063320/

相关文章:

wpf - 如何在不知道进度动画的完成度的情况下显示进度动画?

java创建带有页眉和页脚的pdf

java - itext pdf在setHeaderRows时重复行

java - 使用Jxls生成pdf

pdf - LaTeX中如何让图片变宽?

c# - 每次与转换器绑定(bind)时,按钮单击时的背景颜色变亮

c# - 在 AddNew 或 EditItem 事务期间不允许延迟刷新

c# - 右键单击选择一个 TreeViewItem

.net - 第三方库可以即时将图像转换为 pdf 和 eps 格式?

c# - AmyuniPDF 以错误的字体(特殊字符)打印 PDF 文档