Events für transparente Schaltflächen

Meldur

Erfahrenes Mitglied
Hallo,

ich habe ein PNG mit Alphakanal und möchte es irgendwie so in Silverlight verwenden können, dass ein Mouse-Event wirklich nur auf nicht-transparente Elemente reagiert. Daraus soll ein völlig unförmiger Button werden. Hat jemand eine Idee?

Danke,
Meldur
 
Hätte an dieser Frage auch nochmal interesse, aber möchte nicht unbedingt einen Button benutzen.
In WPF hatte ich einfach die "HitTestCore" Methode überschrieben, leider gibt es diese aber in Silverlight nicht. Gäbe es keine andere Lösung?
 
Da kann ich inzwischen eine Antwort geben (sorry - hätte ich gleich posten sollen. Man unterscheidet ja im WPF zwischen Farbe und Sichtbarkeit (Opacity). Wenn man die Sichtbarkeit auf Null schraubt, dann verliert das Control auch die Fähigkeit, auf MouseEvents zu reagieren. ABER - wenn man die Sichtbarkeit auf 100% läßt und dafür den Alphawert der (Hintergrund-)Farbe auf Null setzt, erhält man ein vollständig transparentes Control, welches immer noch alle Eingaben akzeptiert.

Viel Spaß,
Meldur
 
Oder ich frag mal eher, wie ist es möglich, in Silverlight eine Figur die im Hintergrund transparent ist, über eine andere Figur zulegen und durch den hintergrund auf die andere Figur zu klicken.
Also so, das ich zwischen den Figuren herumklicken kann, aber nur der nicht transparente Bereich nich klickbar ist.
 
Zuletzt bearbeitet:
Du kannst die Figuren jeweils auf ein Canvas (oder ein Grid) legen, welches als Hintergrundfarbe #00000000 hat. Wenn die Figuren sich überlagern und du z.B. durch eine Figur hindurch auf die hintere Figure klicken willst, musst du für das Hintergrundcontrol "PreviewMouseDown" verwenden - das ist jetzt aus WPF- - in Silverlight sollte das so glaube ich ähnlich sein. Ansonsten habe ich in Sivlerlight auch schon mal Pfade mit der selben Hintergrundfabe verwendet, um unregelmäßige Klick-Flächen zu bauen.
 
So wie es ausschaut habe ich wohl dann nen dickes Problem, da es "PreviewMouseDown" nicht gibt. Unter WPF war alles einfacher, aber Silverlight spricht mich mehr an.

Hab nähmlich ein größeres Projekt vor, nur jetzt ist die Frage ob Silverlight oder WPF.
 
Zuletzt bearbeitet:
Die Frage ist doch eher, ob du eine browserbasierte Anwendung brauchst oder eine Desktopbasierte? Bei Letzterem rate ich auf jeden Fall zu WPF - aber vorerst würde ich noch die Finger von .Net 4.0 lassen - habe es gester bzgl. Grafikperformance getestet und es ist mir noch nicht ganz geheuer. 3.5 ist jedenfalls eine mächtige Umgebung, zu der ich jedem nur raten kann.
 
Naja mein Ziel ist es einfach, eine Applikation zu schaffen, die auf verschiedenen Plattformen läuft z.B. Windows Phone 7.
Und sofern ich weiß, gibt es doch auch nen Plugin für Silverlight unter Mac.

Hier hätte ich mal ein Beispiel, wie es in etwa ausschaut. Es stellt den Boden da und dieser ist überschachtelt.

Beispiel-Boden_6.png
 
Zuletzt bearbeitet:
Ja da brauchst du wirklich Silverlight, denn das gibt's für alle großen Browser (IE, FF, Safari,...). Schau mal ob es in Silverlight den Parameter IsHittestVisible gibt - damit kannst du Elemente quasie für Mauseingaben "durchlässig" machen, so dass die Elemente darunter reagieren können.
 
Zurück