Visual Basic .NET Language
GDI +
Szukaj…
Utwórz obiekt graficzny
Istnieją trzy sposoby utworzenia obiektu graficznego
- Z imprezy Paint
Za każdym razem, gdy formant jest przerysowywany (zmienia rozmiar, odświeżany ...) to zdarzenie jest wywoływane, użyj tego sposobu, jeśli chcesz, aby formant stale korzystał z formantu
'this will work on any object's paint event, not just the form
Private Sub Form1_Paint(sender as Object, e as PaintEventArgs) Handles Me.Paint
Dim gra as Graphics
gra = e.Graphics
End Sub
- Utwórz grafikę
Jest to najczęściej używane, gdy chcesz utworzyć jednorazową grafikę na formancie lub nie chcesz, aby formant sam się odmalował
Dim btn as New Button
Dim g As Graphics = btn.CreateGraphics
- Z istniejącej grafiki
Użyj tej metody, jeśli chcesz narysować i zmienić istniejącą grafikę
'The existing image can be from a filename, stream or Drawing.Graphic
Dim image = New Bitmap("C:\TempBit.bmp")
Dim gr As Graphics = Graphics.FromImage(image)
Rysuj kształty
Aby rozpocząć rysowanie kształtu, musisz zdefiniować obiekt pióra Pen
akceptuje dwa parametry:
- Kolor pióra lub pędzel
- Szerokość pisaka
Pióro Obiekt służy do utworzenia konturu obiektu, który chcesz narysować
Po zdefiniowaniu pióra można ustawić określone właściwości pióra
Dim pens As New Pen(Color.Purple)
pens.DashStyle = DashStyle.Dash 'pen will draw with a dashed line
pens.EndCap = LineCap.ArrowAnchor 'the line will end in an arrow
pens.StartCap = LineCap.Round 'The line draw will start rounded
'*Notice* - the Start and End Caps will not show if you draw a closed shape
Następnie użyj utworzonego obiektu graficznego, aby narysować kształt
Private Sub GraphicForm_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint
Dim pen As New Pen(Color.Blue, 15) 'Use a blue pen with a width of 15
Dim point1 As New Point(5, 15) 'starting point of the line
Dim point2 As New Point(30, 100) 'ending point of the line
e.Graphics.DrawLine(pen, point1, point2)
e.Graphics.DrawRectangle(pen, 60, 90, 200, 300) 'draw an outline of the rectangle
Domyślnie szerokość pióra jest równa 1
Dim pen2 as New Pen(Color.Orange) 'Use an orange pen with width of 1
Dim origRect As New Rectangle(90, 30, 50, 60) 'Define bounds of arc
e.Graphics.DrawArc(pen2, origRect, 20, 180) 'Draw arc in the rectangle bounds
End Sub
Wypełnij kształty
Graphics.FillShapes rysuje kształt i wypełnia go podanym kolorem. Można użyć Kształty wypełnienia
Narzędzie
Brush
- do wypełnienia kształtu jednolitym koloremDim rect As New Rectangle(50, 50, 50, 50) e.Graphics.FillRectangle(Brushes.Green, rect) 'draws a rectangle that is filled with green e.Graphics.FillPie(Brushes.Silver, rect, 0, 180) 'draws a half circle that is filled with silver
Narzędzie
HatchBrush
- do wypełnienia kształtu wzorem
Dim hBrush As New HatchBrush(HatchStyle.ZigZag, Color.SkyBlue, Color.Gray)
'creates a HatchBrush Tool with a background color of blue, foreground color of gray,
'and will fill with a zigzag pattern
Dim rectan As New Rectangle(100, 100, 100, 100)
e.Graphics.FillRectangle(hBrush, rectan)
LinearGradientBrush
- aby wypełnić kształt gradientemDim lBrush As New LinearGradientBrush(point1, point2, Color.MediumVioletRed, Color.PaleGreen) Dim rect As New Rectangle(50, 50, 200, 200) e.Graphics.FillRectangle(lBrush, rect)
TextureBrush
- aby wypełnić kształt obrazem
Możesz wybrać zdjęcie z zasobów, już zdefiniowanej mapy bitowej lub z nazwy pliku
Dim textBrush As New TextureBrush(New Bitmap("C:\ColorPic.jpg"))
Dim rect As New Rectangle(400, 400, 100, 100)
e.Graphics.FillPie(textBrush, rect, 0, 360)
Zarówno Hatch Brush Tool
i LinearGradientBrush
importują następującą instrukcję: Importuje System.Drawing.Drawing2D
Tekst
Aby narysować tekst na formularzu, użyj metody DrawString
Podczas rysowania sznurka możesz użyć dowolnego z 4 pędzli wymienionych powyżej
Dim lBrush As New LinearGradientBrush(point1, point2, Color.MediumVioletRed, Color.PaleGreen)
e.Graphics.DrawString("HELLO", New Font("Impact", 60, FontStyle.Bold), lBrush, New Point(40, 400))
'this will draw the word "Hello" at the given point, with a linearGradient Brush
Ponieważ nie możesz zdefiniować szerokości lub wysokości tekstu, użyj opcji Measure Text
aby sprawdzić rozmiar tekstu
Dim lBrush As New LinearGradientBrush(point1, point2, Color.MediumVioletRed, Color.PaleGreen)
Dim TextSize = e.Graphics.MeasureString("HELLO", New Font("Impact", 60, FontStyle.Bold), lBrush)
'Use the TextSize to determine where to place the string, or if the font needs to be smaller
Np .: Musisz narysować słowo „Test” na górze formularza. Szerokość formularza wynosi 120. Użyj tej pętli, aby zmniejszyć rozmiar czcionki, aż dopasuje się do szerokości formularza
Dim FontSize as Integer = 80
Dim TextSize = e.graphics.measeString("Test", New Font("Impact",FontSize, FontStyle.Bold), new Brush(colors.Blue, 10)
Do while TextSize.Width >120
FontSize = FontSize -1
TextSize = e.graphics.measeString("Test", New Font("Impact",FontSize, FontStyle.Bold), new Brush(colors.Blue, 10)
Loop