2017-11-05 42 views
0

私は、Pen.Alignment = PenAlignment.Outsetを使って矩形を描画しています(緑の背景を持つ)。PenAlignment.Outsetは効果がありません

これはコードです:

Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint 

    Dim iTop As Integer = 1 
    Dim iLeft As Integer = 1 
    Dim iRight As Integer = 3 
    Dim iBottom As Integer = 3 

    Dim r As Rectangle = Rectangle.FromLTRB(iLeft, iTop, iRight, iBottom) 

    Using nPen As Pen = New Pen(Color.Black) 
     nPen.Alignment = PenAlignment.Outset 
     e.Graphics.PageUnit = GraphicsUnit.Pixel 
     nPen.Width = 1 
     e.Graphics.DrawRectangle(nPen, r) 
    End Using 

End Sub 

しかし、PenAlignmentは影響しません。 これが出力されます。代わりに「最初」で四角形を描画する

enter image description here

長方形であり、それはexactely描画します。私は黒い線が四角形のまわりにちょうど描かれることを期待する。

したがって、最初の黒点は0-0でなく、1-1でなければなりません。

ここで何が問題になるのでしょうか?

+0

私はコード内の任意のミスが表示されません。まあ、それは不思議です。 : -/ – AntonioC

+0

私はPenの幅が1より大きい場合、Pen.Alignmentsが使用されると信じています。より大きな四角形を描画したい場合は、自分でサイズを変更する必要があります。 – LarsTech

+0

MSDNに記載されているものは表示されません。本気ですか? – tmighty

答えて

0

私は同じ問題を抱えており、答えが得られなかったので、私はそれを回避しなければなりませんでした。

は、ここに私がやったことだ:

Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint 

    'Main Shape Values 
    Dim x = 100 
    Dim y = 100 
    Dim wdth = 300 
    Dim hght = 200 
    Dim shP = 2 

    'Main Shape 
    Dim ShapePen As New Pen(Color.Black, shP) 
    Dim Shape As New Rectangle(x, y, wdth, hght) 
    e.Graphics.DrawRectangle(ShapePen, Shape) 

    'Values For the Alignment 
    Dim P_Thck = 20 
    Dim R_ThickL = (P_Thck/2) + (shP/2) 
    Dim R_ThickS = R_ThickL * 2 

    Dim AlignmentPen As New Pen(Color.Red, P_Thck) 
    'Dim Align_Outset As New Rectangle(x - R_ThickL, y - R_ThickL, wdth + R_ThickS, hght + R_ThickS) 
    Dim Align_Inset As New Rectangle(x + R_ThickL, y + R_ThickL, wdth - R_ThickS, hght - R_ThickS) 

    'e.Graphics.DrawRectangle(AlignmentPen, Align_Outset) 
    e.Graphics.DrawRectangle(AlignmentPen, Align_Inset) 

End Sub 

が、私は2つの形状を使用しています。 1つは私の働く形であり、もう1つは私の整列の図形のために調整したものです。

Inset

Outset

関連する問題