1

这是我的代码:

 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);

将字符串放在图像上效果不佳。这段代码可以写得很好,但我不能把字符串从左下角放到右上角。你有什么建议吗?

4

2 回答 2

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 然后旋转然后绘制。如果这不起作用,请尝试更改旋转和平移的顺序。

于 2013-01-18T20:57:51.417 回答
0

如果您找到对角线的图像(应该不难),只需将 Button 的背景图像属性设置为图像。它的代码类似于:

button1.BackgroundImage = ((System.Drawing.Image)(Properties.Resources.img2));

我相信可以设置一些属性来拉伸图像和东西,以防它没有正确排列。

于 2013-01-18T20:54:44.827 回答