zoukankan      html  css  js  c++  java
  • DotNetMagic的一个Bug

        一个文字颠倒的Bug(对中文而言),在最新的3.0.1中依然存在,看图:

        理想的情况当然是这样:

        花了些时间看了看,发现是在DrawReverseString函数中出的问题,修改如下:

            public static void DrawReverseString(Graphics g,
                                                 String drawText,
                                                 Font drawFont,
                                                 Rectangle drawRect,
                                                 Brush drawBrush,
                                                 StringFormat drawFormat)
            {
                GraphicsContainer container = g.BeginContainer();

                // The text will be rotated around the origin (0,0) and so needs moving
                // back into position by using a transform
                g.TranslateTransform(drawRect.Top, drawRect.Left + drawRect.Height);

                // Rotate the text by 180 degress to reverse the direction
                g.RotateTransform(-90);

       int tmp = drawRect.Width;
       drawRect.Width = drawRect.Height;
       drawRect.Height = tmp;
                // Draw the string as normal and let then transforms do the work
                g.DrawString(drawText, drawFont, drawBrush, drawRect, drawFormat);

                g.EndContainer(container);
            }

        另外,需要去掉DrawColumn函数中的设置的一个StringFormatFlags:

                format.FormatFlags = //StringFormatFlags.DirectionVertical |
                                     StringFormatFlags.NoClip |
                                     StringFormatFlags.NoWrap;
        
        不过修改之后没有详细测试,不知道在其它地方是否会出问题。
        感谢木头指出这个Bug。

  • 相关阅读:
    thinkpad--Windows8 F11一键恢复方法
    ThinkPad---Windows8更换Windows7方法
    断网问题360解决方案
    网络故障诊断指南
    重装系统指南
    题目1123:采药
    题目1019:简单计算器
    题目1012:畅通工程
    你的隐私数据真的安全吗之memset()使用分析
    高光谱图像处理深度学习方法综述(一)
  • 原文地址:https://www.cnblogs.com/s5689412/p/194453.html
Copyright © 2011-2022 走看看