C#中使用DrawStringios 绘制文字 居中本时怎样使文本居中或右对齐

21:38 提问
c#的Graphics.DrawString文字换行的问题
用Graphics.DrawString写文字,我想要的效果是,在一个宽度里显示文字,但文字的字数不定,可以实现自动换行及获取到这些文字的高度吗?
我用RectangleF试了,只是是固定的高度,如果文字太多,会显示不全。
按时间排序
调用DrawString函数时,传入一个边框矩形参数,文字会在此范围内自动换行。
因为字数不定,所以此矩形的高度也应该动态变化。
代码如下:
private void panel1_Paint(object sender, PaintEventArgs e)
string txtDescription = "这是一段非常长的字符串";
RectangleF descRect = new RectangleF();
using (Font useFont = new Font("SimSun", 28, FontStyle.Bold))
descRect.Location = new Point(30, 105);
descRect.Size = new Size(600, ((int)e.Graphics.MeasureString(txtDescription, useFont, 600, StringFormat.GenericTypographic).Height));
e.Graphics.DrawString(txtDescription, useFont, Brushes.Black, descRect);
MeasureString函数的用法可参考:
用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!
其他相似问题您已经超出预览范围,如果喜欢就购买吧!
阅读完整文档所需豆元:10.0
《Windows移动游戏开发实战——使用C#语言》将竭力激发您的创造力,让您有机会制作出成功的手机游戏。本书从首个Windows 移动游戏应用程序开发开始介绍,直到采用包括OpenGL ES图形库在内的高级图形技术,全程指导您创建理想的完整游戏。着重讲述了游戏的输入方式和控制方式、在游戏中灵活地控制屏幕对象的方法、确保游戏运行速度一致的计时器、添加音乐和音效等方面的知识,还演示了如何克服兼容性问题,使您的游戏可以适用..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Windows移动游戏开发实战——使用C#语言(试读)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口查看: 1926|回复: 3
C# 标题居中打印
该用户从未签到
想要打印一张小票、用的是 printDocument 控件
求助问题是让标题居中算法、
参考了一下
& && && && &Font titleFont = new Font(&新宋体&, 10, FontStyle.Bold);//字体& && && && && &
& && && && &Brush brush = new SolidBrush(Color.Black);//画刷& && &&&
& && && && &Point po = new Point(10, 10);&&//高度
& && && && &float left = e.PageSettings.Margins.L//打印区域的左边界
& && && && &float top = e.PageSettings.Margins.T//打印区域的上边界
& && && && &float width = e.PageSettings.PaperSize.Width - left - e.PageSettings.Margins.R//计算出有效打印区域的宽度
& && && && &float height = e.PageSettings.PaperSize.Height - top - e.PageSettings.Margins.B//计算出有效打印区域的高度
& && && && &//标题
& && && && &string name=&99街区KTV&;
& && && && &e.Graphics.DrawString(name, titleFont, brush, left + width / 6, top + 5, new StringFormat());& && &
我用的是10号字体、标题 长度短的时候是居中了、长了就不行了、求飞哥、求大神教导一下阿
&&&&&&&&&&&&&&&&
TA的每日心情开心昨天&14:28签到天数: 311 天[LV.8]以坛为家I
小票的大小不是固定的吗, 根据这个计算吧,先找到一个字时候的中间,增加字就向前移动,减少就向后移动
&&&&&&&&&&&&&&&&
该用户从未签到
小票的大小不是固定的吗, 根据这个计算吧,先找到一个字时候的中间,增加字就向前移动,减少就向后移动
受教了,学习中……
&&&&&&&&&&&&&&&&
TA的每日心情开心昨天&14:28签到天数: 311 天[LV.8]以坛为家I
受教了,学习中……
安这个思路试试吧,只要你定位好一个位置,根据增加的字移动相同的距离就行
&&&&&&&&&&&&&&&&
( 豫ICP备号-1)&&&请教用用drawstring函数绘制文本时,如果在指定区域内做到文本两端对齐啊 - C#当前位置:& &&&请教用用drawstring函数绘制文本时,如果在指定区域请教用用drawstring函数绘制文本时,如果在指定区域内做到文本两端对齐啊&&网友分享于:&&浏览:0次请问用用drawstring函数绘制文本时,如果在指定区域内做到文本两端对齐啊?网上找了很久,有很多文章说StringAlignmentFar是两端对齐,但我怎么试都是右对齐
而且msdn上也说
Specifies&that&alignment&is&to&the&far&extent&(right&side)&of&the&formatting&rectangle.&
难道这么强大的.net没有两端对齐吗?------解决思路----------------------没有,需要用Graphics.MeasureString对每个单词测量宽度,然后填充空格。
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有}

我要回帖

更多关于 canvas绘制文字居中 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信