VisualStyles bei Button beibehalten?

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von MarcoQuinten.

    VisualStyles bei Button beibehalten?

    Hi @alll

    Ich entwickle gerade einen eigene Button.
    Der Button soll als Hintergrund einen Farbverlauf anzeigen,
    die Visuellen Stile sollen aber beibehalten werden.

    Wer nicht versteht, was ich meine:
    Wenn ich den Hintergrund des Button mit einem Farbverlauf fülle, ist der Hintergrund komplett flach.
    Ich möchte aber, dass der Button aussieht wie ein normaler Button, nur mit Farbverlauf.

    Mein Code:

    VB.NET-Quellcode

    1. Dim strfrmt As New StringFormat
    2. strfrmt.Alignment = TextAlign
    3. Dim pntx As New Point(pevent.ClipRectangle.Location.X, CInt((pevent.ClipRectangle.Height / 2) - (SystemFonts.DefaultFont.Height)))
    4. Dim pnt As New Rectangle(pntx, pevent.ClipRectangle.Size)
    5. Dim mpnt1 As New Point(0, 0)
    6. Dim mpnt2 As New Point(Me.Width, Me.Height)
    7. With pevent.Graphics
    8. Select Case Background
    9. Case AmazingButtonStyle.Blue
    10. .FillRectangle(New LinearGradientBrush(mpnt1, mpnt2, Color.Black, Color.DarkBlue), pevent.ClipRectangle)
    11. End Select
    12. .DrawString(Me.Text, Me.Font, New SolidBrush(Me.ForeColor), pnt, strfrmt)
    13. End With
    Male das Hintergrundbild und male auf dieses den entsprechenden Rand (normal, mit Fokus, gedrückt, ...)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    *Vollzitat der vorhergehenden Nachricht entfernt*

    Sorry, ich kenne mich nicht so damit aus..
    Wie male ich den Farbverlauf so auf den Button, dass die Visuellen Stile erhalten bleiben?

    #Edit: Ein oder zwei Zeilen Code wären nett ^^

    Edit by ~blaze~:
    bitte keine unnötigen Zitate posten, wie z.B. Vollzitate der direkt vorhergehenden Nachricht
    --> *Vollzitat entfernt*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „~blaze~“ ()

    MarcoQuinten schrieb:

    Ich entwickle gerade einen eigene Button.
    Male Dein Hintergrundbild.
    Male einen Rand um das Hintergrundbild, so dass das Bild aussieht, wier ein Button.

    VB.NET-Quellcode

    1. Graphics.DrawLine(...)
    2. Graphics.DrawRectangle(...)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hmm.. Ich glaube du ich habe ich falsch ausgedrückt.
    Ist aber auch wirklich schwer zu erklären :)

    Einen Rand um das Bild zu malen ist garkein Problem.

    Ich habe es aber jetzt so hinbekommen:

    VB.NET-Quellcode

    1. With pevent.Graphics
    2. Select Case Background
    3. Case AmazingButtonStyle.Blue
    4. .FillRectangle(New LinearGradientBrush(mpnt1, mpnt2, Color.FromArgb(200, Color.Black), Color.FromArgb(200, Color.DarkBlue)), pevent.ClipRectangle)
    5. End Select
    6. End With


    Wenn ich den Background transparent zeichne, wird der Button nicht komplett verdeckt und die Visuellen Stile funktionieren.

    Trotzdem vielen Dank für deine Hilfe! :)