Control über Control - Transparenz des darunterliegenden

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Control über Control - Transparenz des darunterliegenden

    Hallihallo :)

    Unszwar.. ich habe folgendes Problem..
    Ich habe eine PictureBox und einmal das Webbrowser Control. In die Picturebox füge ich ein Bild ein und stelle "BackgroundimageColor" auf Transparent. Soweit funktioniert alles perfekt. Jedoch möchte ich die PictureBox über das Webbrowser Control legen. Die Grafik ist beispielsweise ein einfacher Kreis mit einem Logo drin, um den Kreis herum ist alles Transparent. Wieso zeigt mir der Transparente Teil die MainForm an und nicht das darunterligende Control?
    Wie behebe ich das ganze?

    Die Sufu habe ich genutzt, jedoch nur eine veraltete Lösung gefunden die auf .NET 2012 nicht wirklich zieht.. an einer Fehlerbehebung sitze ich ebenfalls, ich benötigt einfache Lösungsvorschläge und keinen Code.. :)

    Lg
    Radanua
    Mein Ansatz dazu war:

    VB.NET-Quellcode

    1. WebBrowser1.Controls.Add(PictureBox1)


    Jedoch funktioniert dies nicht.. die PictureBox wird einfach etwas im Webbrowser Control verschoben und alles ist noch so wie vorher ( Ausser die Location der PictureBox)

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

    Hmm... nach etwas überlegen.. dachte ich, ich zeichne einfach mein Bild per GDI+ oder XNA auf das Webbrowser Control, jedoch ist mir die Materie nicht bekannt, kennt jemand gute Beispiele / Tutorials ? Ich bin immernoch nicht weiter gekommen :/
    Getestet...... funktioniert nicht wirklich.. das Webbrowser Control ist gar nicht mehr wirklich zu sehen. Man hört halt nurnoch das es eine Seite aufruft (Click Sound - da es das Standart Webbrowser COntrol ist).

    Jedoch danke für deinen Lösungsversuch :)

    Noch einen Vorschlag?
    Gibts denn hier keiner, der einem helfen kann? Ich hab jetzt schon nen haufen GDI Tutorials durch... ich raffs nich..
    Ieiner der mir einfach die Vorgehensweise erkläutern kann, wie ich bei einem Transparentem Control, das darunterliegender Control sichtbar mache...
    Ich glaube nicht das man in Win-Forms ein Control unter einem Control überhaubt, bzw nur mit großem aufwand sichtbar machen kann.
    Wenn das wirklich unbedingt brauchst solltest du dich mit WPF auseinander setzen. Das es hier bereits reichen würde die Hintergrundfarbe auf Transparent zu setzen.

    Aber bevor du auf WPF umsteigst solltest du dir überlegen ob du das auch wirklich für dein Vorhaben brauchst oder ob du es auch ohne Transparentes Control lösen kannst.
    WPF? Damit fang ich dann mal an :)
    Naja.. mir fällt da nun keine andere Lösung ein.. ich zeige ich mal kurz einen Screen..


    Wenn jemand eine Lösung hat, wie ich den Teil der Waffe in den Vordergrund bekomme und die Transparenz um die Waffe das darunterliegende Control anzeigt, bin ich dem gerne offen gestimmt..
    jo, du raffstes nicht.

    die mögliche und mehrfach erwähnte Lösung besteht darin, die Zeichnung selbst auszuführen, direkt auffm WebbrauserControl, also ohne Picturebox.

    Aber du wiederholst nur stereotyp immer dieselbe Problembeschreibung, und kommst von der Idee eines durchsichtigen Picturebox (die ja nicht funktioniert) einfach nicht los.

    Aber ich muss jetzt selbstmal probieren, ob man aufm Webbrauser-Control zeichnen kann wie auf einem normalen Control - WB ist nämlich in einigen Hinsichten untypisch.

    Edit: Jo, also auch in dieser Hinsicht: Webbrauser bietet garkein Paint-Event an, also da müssteman was mit einer Art SubClassing probieren, dass man zu was kommt.
    Ich habe sehr wohl - wie unfreundlich du dich erstmal ausdrückst - "gerafft". Ich habe halt nur keine Ahnung wie ich das mit GDI+ mache, weshalb ich hilfe angefordert habe.

    Das Webbrowser Control kann ich diesbezüglich auch weglassen. Es würde mir reichen, Panel über Panel Transparent darzustellen.

    Dennoch Danke für deine Anteilnahme zur Lösung meines Problems.
    Schon wieder.

    Radanua schrieb:

    Es würde mir reichen, Panel über Panel Transparent darzustellen.
    Du kommst einfach vom Gedanken nicht los, ein transparentes Control haben zu wollen.
    Das geht in Winforms nicht (jedenfalls nicht wirklich).

    Stattdessen selber zeichnen. Und mit Webbrauser geht auch das nicht (jedenfalls nicht wirklich gut).

    Aber wenn du mit deinem Kopf dich mal von "transparentes Control" für einen Moment lösen kannst, kannstedirmal Control mit beweglicher Figur angugge.
    Also dassisjetzt recht oversized, weil Beweglichkeit hast du ja garnet angefordert.

    Und wenndewas nicht verstehst - bitte! - nicht sagen "ich versteh nix" - dassis genauso deppert wie zu sagen "funktioniert nicht".
    Es gibt immer iwas bestimmtes, was nicht funktioniert, oder was man nicht versteht. Und das kann man benennen, und dann kann man auch Erklärungen dazu kriegen. Aber ohne Benennung ist Kommunikation halt nicht möglich.