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。

  • 相关阅读:
    IE无法打开internet网站已终止操作的解决的方法
    欢乐暑假-高校俱乐部暑期线上编程竞赛奖励机制
    pojAGTC(LCS,DP)
    ExtJs自学教程(1):一切从API開始
    Java实现BASE64编解码
    IOS框架概览
    DeviceIoControl的使用说明
    strcpy_s与strcpy的比較
    第三章 引擎的核心:渲染框架
    具体解释VB中连接access数据库的几种方法
  • 原文地址:https://www.cnblogs.com/s5689412/p/194453.html
Copyright © 2011-2022 走看看