Это легко рисовать стрелки таким же образом, что вы работали, как рисовать линии на PictureBox
в a previous question.
Все, что вам нужно сделать, это указать StartCap
или EndCap
для Pen
объекта, который вы уже используете, чтобы рисовать линии. Интуитивно свойство StartCap
позволяет указать стиль кепки, который используется в начале любых строк, которые вы рисуете с помощью объекта Pen
, а свойство EndCap
позволяет указать стиль кепки для конца строк.
Несколько различных LineCap
стилей доступны, в том числе:
Flat Specifies a flat line cap.
Square Specifies a square line cap.
Round Specifies a round line cap.
Triangle Specifies a triangular line cap.
NoAnchor Specifies no anchor.
SquareAnchor Specifies a square anchor line cap.
RoundAnchor Specifies a round anchor cap.
DiamondAnchor Specifies a diamond anchor cap.
ArrowAnchor Specifies an arrow-shaped anchor cap.
Custom Specifies a custom line cap.
AnchorMask Specifies a mask used to check whether a line cap is an anchor cap.
Вы, вероятно, найти ArrowAnchor
стиль наиболее полезным в этом случае: просто указать ArrowAnchor
как LineCap
стиль для любого начала или конца строки (в зависимости от направления, в котором вы хотите указать стрелку).
Следующий код будет использовать зеленый, стрелку вправо с толщиной линии 4:
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
//Create a new pen to draw the arrow with
using (Pen p = new Pen(Brushes.Green, 4f))
{
//Specify the EndCap, because we're drawing a right-facing arrow
p.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor;
//Draw the arrow
e.Graphics.DrawLine(p, 0, 0, 30, 45);
}
}
+1 велика, как всегда – 2010-11-23 12:06:24
Это идеальный вариант, только одна вещь, как мне сделать это так, чтобы стрелка я нарисовали остается там, когда я рисую еще одну стрелу, потому что на данный момент последняя стрелка обращается исчезает, когда я начинаю рисовать новый? Как я могу исправить это, чтобы они остались? Спасибо – 2010-11-23 14:30:46