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

Bir oluşturduğunuzda, bir Pen oluşturucunun bağımsız değişkenlerinden biri olarak kalem genişliğini sağlayabilirsiniz. Ayrıca, kalem genişliğini Width sınıfının özelliği ile değiştirebilirsiniz Pen .

Teorik bir çizginin genişliği 0 ' dır. 1 piksel genişliğinde bir çizgi çizdiğinizde, pikseller teorik hat üzerinde ortalanır. Birden çok piksel genişliğinde bir çizgi çiziyorsanız, pikseller teorik hat üzerinde ortalandı veya teorik hattın bir tarafında görünür. PenBu kalemle çizilen piksellerin teorik çizgilere göre nasıl konumlandırılacağını belirleyebilmek için bir için kalem hizalaması özelliğini ayarlayabilirsiniz.

CenterOutsetInset Aşağıdaki kod örneklerinde görünen ve değerleri, PenAlignment numaralandırmanın üyeleridir.

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

Bir kalemin genişliğini değiştirmek için

  • AlignmentCenter Yeşil kalemle çizilen piksellerin teorik hat üzerinde ortalanmasını belirtmek için özelliğin değerini (varsayılan) olarak ayarlayın. Aşağıdaki çizimde sonuç satırı gösterilmektedir.

    A black thin line with green highlight.

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

    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)
    
    

Bir kalemin hizalamasını değiştirmek için

  • AlignmentCenter Yeşil kalemle çizilen piksellerin dikdörtgenin sınırında ortalanmayacağını belirtmek için ö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 iç içe kalem oluşturmak için

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

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

    Artık geniş yeşil çizgi içindeki 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.