У меня есть список строк, которые я рисую на оси. Я хочу повернуть струны (опять же, они должны оставаться на одной и той же горизонтальной оси при повороте). Я пытаюсь использовать следующий код:Как повернуть список строк вдоль оси?
namespace DrawString
{
struct StringData
{
public string StringName;
public int X;
public int Y;
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Font mFont = new Font("Arial", 10.0f, FontStyle.Bold);
List<StringData> data = new List<StringData> { new StringData() { StringName = "Label1", X = 10, Y = 30 },
new StringData() { StringName = "Label2", X = 130, Y = 30 }};
private void Form1_Paint(object sender, PaintEventArgs e)
{
foreach (var str in data)
{
e.Graphics.RotateTransform(30);
e.Graphics.DrawString(str.StringName, mFont, new SolidBrush(Color.Black), new Point(str.X, str.Y));
e.Graphics.ResetTransform();
}
}
}
}
Но это не работает, так как Графика вращается для обеих строк сразу, вызывая одну строку выше, чем другой. Как я могу повернуть их индивидуально, используя центр строки в качестве своей оси вращения?
Не знаете, как решить вашу проблему, но я думаю, с помощью TranslateClip может помочь вещи немного (в другие рамки, перевод часто помогает сменить центр вращения) – luiscubal