В этом проекте я пытался использовать погодные шрифты ESRI. Но проблема заключалась в том, что я не мог разместить шрифт на нужном месте, а его вращение приводило к путанице.

На изображении я использовал шрифт, в котором конец символа должен находиться на пересечении линии, но я не мог этого сделать. Изображение на стороне, помеченной как правильное, — это именно то, что мне нужно. Конец маркера шрифта находится на пересечении и не перемещается при изменении угла.
Код: Выделить всё
int _rotcount = 0;
int _rotlog = 80;
private void button2_Click(object sender, EventArgs e)
{
Font fn = new Font("ESRI Weather", 40,FontStyle.Bold);
string text = ((char)0227).ToString();
Graphics gr = PnlBase.CreateGraphics();
GraphicsState st = gr.Save();
gr.ResetTransform();
if (_rotcount > 0)
{
_rotlog += 10;
gr.RotateTransform(270);
_rotcount++;
}
else
{
_rotlog += 10;
gr.RotateTransform(180);
_rotcount++;
}
gr.TranslateTransform((float)55, (float)50,MatrixOrder.Append);
Pen blackPen = new Pen(Color.Black, 3);
using (StringFormat sf = new StringFormat())
{
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
gr.DrawString(text, fn, new SolidBrush(Color.Black), 0, 0, sf);
}
gr.Restore(st);
}
Если у вас есть для меня идея или решение, буду благодарен за сотрудничество.
Подробнее здесь: https://stackoverflow.com/questions/787 ... dows-forms