Nasıl yapılır: Kalem Genişliği ve Hizalamasını Ayarlama

Oluşturduğunuzda Pen, kalem genişliğini oluşturucunun bağımsız değişkenlerinden biri olarak sağlayabilirsiniz. Kalem genişliğini sınıfın Width özelliğiyle Pen de değiştirebilirsiniz.

Teorik bir çizginin genişliği 0'dır. 1 piksel genişliğinde bir çizgi çizdiğinizde, pikseller teorik çizgi üzerinde ortalanır. Birden fazla piksel genişliğinde bir çizgi çizerseniz, pikseller teorik çizgide ortalanır veya teorik çizginin bir tarafında görünür. Kalemle çizilen piksellerin teorik çizgilere göre nasıl konumlandırılacağını belirlemek için öğesinin Pen kalem hizalama özelliğini ayarlayabilirsiniz.

Aşağıdaki kod örneklerinde görüntülenen , Outsetve Inset değerleri Centernumaralandırmanın PenAlignment üyeleridir.

Aşağıdaki kod örneği iki kez çizgi çizer: bir kez genişlik 1 siyah kalem ve bir kez genişlik 10 yeşil kalem ile.

Kalemin genişliğini değiştirmek için

  • Özelliğin AlignmentCenter değerini (varsayılan) olarak ayarlayarak yeşil kalemle çizilen piksellerin teorik çizgide ortalandığını belirtin. Aşağıdaki çizimde, sonuçta elde edilen çizgi gösterilmektedir.

    A black thin line with green highlight.

    Aşağıdaki kod örneği iki kez dikdörtgen çizer: bir kez genişlik 1 siyah kalem ve bir kez genişlik 10 yeşil kalem ile.

    Pen blackPen = new Pen(Color.FromArgb(255, 0, 0, 0), 1);
    Pen greenPen = new Pen(Color.FromArgb(255, 0, 255, 0), 10);
    greenPen.Alignment = PenAlignment.Center;
    
    // Draw the line with the wide green pen.
    e.Graphics.DrawLine(greenPen, 10, 100, 100, 50);
    
    // Draw the line with the thin black pen.
    e.Graphics.DrawLine(blackPen, 10, 100, 100, 50);
    
    Dim blackPen As New Pen(Color.FromArgb(255, 0, 0, 0), 1)
    Dim greenPen As New Pen(Color.FromArgb(255, 0, 255, 0), 10)
    greenPen.Alignment = PenAlignment.Center
    
    ' Draw the line with the wide green pen.
    e.Graphics.DrawLine(greenPen, 10, 100, 100, 50)
    
    ' Draw the line with the thin black pen.
    e.Graphics.DrawLine(blackPen, 10, 100, 100, 50)
    
    

Kalemin hizalamasını değiştirmek için

  • Yeşil kalemle çizilen piksellerin Alignment dikdörtgenin sınırında ortalandığını belirtmek için Center özelliğinin değerini olarak ayarlayın.

    Aşağıdaki çizimde elde edilen dikdörtgen gösterilmektedir:

    A rectangle drawn with black thin lines with green highlight.

    Pen blackPen = new Pen(Color.FromArgb(255, 0, 0, 0), 1);
    Pen greenPen = new Pen(Color.FromArgb(255, 0, 255, 0), 10);
    greenPen.Alignment = PenAlignment.Center;
    
    // Draw the rectangle with the wide green pen.
    e.Graphics.DrawRectangle(greenPen, 10, 100, 50, 50);
    
    // Draw the rectangle with the thin black pen.
    e.Graphics.DrawRectangle(blackPen, 10, 100, 50, 50);
    
    Dim blackPen As New Pen(Color.FromArgb(255, 0, 0, 0), 1)
    Dim greenPen As New Pen(Color.FromArgb(255, 0, 255, 0), 10)
    greenPen.Alignment = PenAlignment.Center
    
    ' Draw the rectangle with the wide green pen.
    e.Graphics.DrawRectangle(greenPen, 10, 100, 50, 50)
    
    ' Draw the rectangle with the thin black pen.
    e.Graphics.DrawRectangle(blackPen, 10, 100, 50, 50)
    
    

bir inset kalemi oluşturmak için

  • Yukarıdaki kod örneğindeki üçüncü deyimini aşağıdaki gibi değiştirerek yeşil kalemin hizalamasını değiştirin:

    greenPen.Alignment = PenAlignment.Inset;
    
    greenPen.Alignment = PenAlignment.Inset
    
    

    Şimdi geniş yeşil çizgideki pikseller, aşağıdaki çizimde gösterildiği gibi dikdörtgenin içinde görünür:

    A rectangle drawn with black lines with the wide green line inside.

Ayrıca bkz.