Schatten um Controls zeichnen

    • VB.NET

      Schatten um Controls zeichnen

      Hier eine kleine aber feine Funktion, die ich mir geschrieben habe, um einen Schatten um ein Control zu zeichnen (sieht schick aus z.B. bei Panels).

      VB.NET-Quellcode

      1. Private Sub Schatten(ByVal Name As Control, ByVal Farben As List(Of Pen), Optional ByVal Umrandung As Boolean = True)
      2. Dim g As Graphics = Graphics.FromHwnd(Me.Handle)
      3. Dim Start As Integer = 0
      4. If Umrandung = True Then
      5. Start = 1
      6. g.DrawRectangle(Pens.Red, New Rectangle(Name.Left - 1, Name.Top - 1, Name.Width + 1, Name.Height + 1))
      7. End If
      8. For i As Integer = Start To Farben.Count - 1
      9. g.DrawRectangle(Farben(i), New Rectangle(Name.Left + Name.Width + i, Name.Top + i, 1, Name.Height + Start))
      10. g.DrawRectangle(Farben(i), New Rectangle(Name.Left + i, Name.Top + Name.Height + i, Name.Width + Start, 1))
      11. Next
      12. End Sub
      13. Private Sub Haupt_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
      14. Dim Farben As New List(Of Pen)
      15. Farben.Add(Pens.DimGray)
      16. Farben.Add(Pens.Gray)
      17. Farben.Add(Pens.DarkGray)
      18. Farben.Add(Pens.Silver)
      19. Farben.Add(Pens.LightGray)
      20. Farben.Add(Pens.Gainsboro)
      21. Schatten(Tester, Farben, False)
      22. End Sub


      Man kann beliebig viele Farben hinzufügen und wenn gewünscht eine Umrandung hinzufügen.

      EDIT: Hässlich, aber selten :D

      ~ Chris
      Bilder
      • Shadow.png

        6,11 kB, 367×261, 1.053 mal angesehen
      To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

      At some point in time, you recognize that knowing more does not necessarily make you more happy.