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。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步