这是我的代码:
Graphics g = Graphics.FromImage(newImage);
var myBrush = new SolidBrush(Color.FromArgb(32, 205, 205, 205));
g.DrawString(label, new Font("verdana", 10, GraphicsUnit.Pixel), myBrush, 10,10);
将字符串放在图像上并不能很好地工作。这段代码可以很好地编写,但是我无法将字符串从左边的底部角落放到右上角。你有什么建议吗?
答案 0 :(得分:1)
g.RotateTransform(45f);
仅在此之后
g.DrawString(label, new Font("verdana", 10, GraphicsUnit.Pixel), myBrush, 10,10);
但那只会旋转45度。根据您的按钮大小和文本长度(可使用MeasureString
方法计算),您需要调整文本的角度和位置。我希望你喜欢几何。
http://msdn.microsoft.com/en-us/library/system.drawing.graphics.rotatetransform(v=vs.100).aspx
为了移动绘制字符串的位置,您需要使用图形对象的TranslateTransform(dx,dy)方法。
http://msdn.microsoft.com/en-us/library/6a1d65f4(v=vs.100).aspx
因此,要在中心绘制字符串,您需要调用translate然后旋转然后绘制。如果效果不好,请尝试更改旋转和翻译的顺序。
答案 1 :(得分:0)
如果找到对角线(不应该很硬)的图像,只需将Button的背景图像属性设置为图像即可。它的代码与此类似:
button1.BackgroundImage = ((System.Drawing.Image)(Properties.Resources.img2));
我相信有一些属性可用于拉伸图像和内容,以防它没有正确排列。