GDI+ Multiverlauf ?

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    GDI+ Multiverlauf ?

    Hi @ all,

    wie der Name hoffentlich^^ schon sagt suche ich eine Art Multiverlauf, vermutlich gibts dazu bereits tutorials, aber da ich den Namen dessen was ich suche nicht kenne, weis ich nicht wie ich danach suchen soll,
    Ich suche eine Möglichkeit einen Gradient Brush in 2 Richtungen zu definieren, also von Links nach rechts und gleichzeitig von oben nach unten,

    Von Oben nach unten : transparent, Blau, Transparent, und dieses ergebnis dann nochmal von links nach rechts: transparent blau transparent

    In den Anhängen ist ein Pi mal Daumen ergebnis dessen was ich etwa zu erreichen suche, Jpg mit weißem Hintergrund, PNG transpoarenter Hintergrund

    Ich hoffe es kam einigermaßen verständlich rüber was ich meinte

    MFG Asus

    p.S.

    ich erstelle einen Verlauf, mit folgendem Code:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Using ULBrush As New LinearGradientBrush(GetRect(rp.HUL), Color.Transparent, Color.Transparent, 0, True) ' getRect erwiedert hier das Rectangle in größe der Usercontrol
    2. Dim clrArray As Color() = {Color.Transparent, Color.FromArgb(100, Color.Blue), Color.FromArgb(200, Color.Blue), Color.FromArgb(100, Color.Blue), Color.Transparent}
    3. Dim posArray As Single() = {0.0F, 0.3F, 0.5F, 0.7F, 1.0F}
    4. Dim colorBlend As New ColorBlend() With {.Colors = clrArray, .Positions = posArray}
    5. ULBrush.InterpolationColors = colorBlend
    6. .FillRectangle(ULBrush, GetRect(rp.HUL))
    7. End Using


    ... sieht man auf den bildern nicht wie erhoft...
    Bilder
    • Fragezeichen.png

      19,19 kB, 200×35, 434 mal angesehen
    • Fragezeichen2.jpg

      16,12 kB, 200×35, 402 mal angesehen
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If
    @asusdk sieh Dir mal den RadialGradientBrush an: msdn.microsoft.com/de-de/libra…dientbrush(v=vs.110).aspx
    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!
    leider gibt mir Intellisense das gar nicht zur auswahl, Sonderimporte notwendig ?
    (Framework 4.5 ist leider notwendig, sollte ich ein höheres benötigen fällt diese Option leider aus)
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If

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

    Sagt doch der MSDN-Artikel: ab .Net-Framework 3.0 verfügbar und man muss die Datei PresentationCore.dll einbinden (Verweise -> Assemblys -> PresentationCore). Ggf. noch den Namespace Windows.Media importieren, aber das ist ja nur nebensächlich.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    naja wenn man windows media importiert ist er verfügbar, dafür hagelts dann aber hunderte fehler im Code, man müsste jede color usw. von hand dann auf system.drawing setzen,
    macht den Code dann unlesbar, ist wohl keine option
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If

    asusdk schrieb:

    ist wohl keine option
    Du musst nur Deine Namespaces ordentlich verwalten:

    VB.NET-Quellcode

    1. Imports MySystem = System.Windows.Forms
    2. ' ...
    3. Dim btn = New MySystem.Button()
    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!