1
我做了一個名爲BorderControl的類,它繼承了Control並且應該繪製虛線邊框。我往前走了,這就是結果:HatchBrush只在左側和頂部繪製破折號
下面是刪節OnPaint方法:
Protected Overrides Sub OnPaint(e As PaintEventArgs)
MyBase.OnPaint(e)
Dim Height As Integer = ClientSize.Height
Dim Width As Integer = ClientSize.Width
With e.Graphics
Using HB As New HatchBrush(HatchStyle.DashedVertical, Color.Green, Color.Red)
Using P As New Pen(HB)
.DrawLine(P, Point.Empty, New Point(0, Height - 1))
.DrawLine(P, Point.Empty, New Point(Width - 1, 0))
.DrawLine(P, New Point(Width - 1, 0), New Point(Width - 1, Height - 1))
.DrawLine(P, New Point(0, Height - 1), New Point(Width - 1, Height - 1))
End Using
End Using
End With
End Sub
這和真正的方法之間的唯一區別是,一個布爾值,決定是否繪製虛線邊框或實線邊框。
任何想法?
編輯 你指出明顯之前,實際的方法也使用HatchStyle.DashedHorizontal對於頂部和底部的線條,所以這不是問題。
我會嘗試使用'HatchStyle.DarkDownwardDiagonel',或者可能'LargeCheckerBoard'。它應該完全消除來自模式的不正確對齊的任何工件的可能性。這些刷子被錨定的方式,我認爲它正在拾取您正在使用的艙口的圖案間距中的間隙。我敢打賭,如果你慢慢調整矩形的寬度和高度,你將能夠找到正確繪製的大小。 –
@BradleyUffner LargeCheckerBoard/SmallCheckerBoard做了詭計。發佈這個答案,我會接受它。謝謝! – Audiopolis