private SizeF GetTextBounds(Font font,string txt) { Bitmap bmp = new Bitmap(1,1); using(Graphics g = Graphics.FromImage(bmp)) { SizeF size = g.MeasureString(font,txt); return size; } }
何为Font,字体。 比如同样的字体绘制“as”和“asdfghjkl”你说宽度能一样么,所以指定字体的宽度没有任何意义。 你选择了一种字体后,按指定字号绘制的文本的宽度就定死了,可以扩展一个方法 C# code?123456789private SizeF GetTextBounds(Font font,string txt){ Bitmap bmp = n……
引用 4 楼 wumin940590725 的回复:引用 2 楼 assky124 的回复: sizeChange事件中 Font font = new Font("宋体",ctrl.Height -6); //具体效果自己调整下 这个事件是font的事件 ? 事件是窗体的,窗体大小改变,字体相应变化
引用 2 楼 assky124 的回复: sizeChange事件中 Font font = new Font("宋体",ctrl.Height -6); //具体效果自己调整下 这个事件是font的事件 ?
引用 21 楼 assky124 的回复:看情况了,如果横向文字过多,是要考虑的。可以用Graphics的MeasureString,计算出文本的宽度。然后用递归,逐步缩小字体,直到能完全显示。 跟我想法一样,自己画文字,可以实现自动适应
看情况了,如果横向文字过多,是要考虑的。可以用Graphics的MeasureString,计算出文本的宽度。然后用递归,逐步缩小字体,直到能完全显示。
乘以0.5神马意思不知道?就是按控件高度乘以0.5啊。Font字体的高度是按磅来的,磅和像素之间的转换自己google下。 在分辨率为96PX/英寸的显示器下,高度乘以0.5约是,字体高度占空间高度的65%
所有代码都给了啊,拷到项目中,调试下,看看效果再说啊!
字体这个不好自动变化吧, 不过自己也可以在窗体中的 Resize 事件中去写代码, 一旦检测到窗体的大小有变化,窗体字体的大小就作相应的变化
sizeChange事件中 Font font = new Font("宋体",ctrl.Height -6); //具体效果自己调整下
111,093
社区成员
642,554
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧