2Danke
ERLEDIGT
JA
JA
ANTWORTEN
11
11
ZUGRIFFE
984
984
EMPFEHLEN
-
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
-
Anstatt einer Grafik den Button per XAML definieren?
-
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.Geändert von lammpee (26.04.10 um 20:53 Uhr)
-
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.Geändert von lammpee (26.04.10 um 21:55 Uhr)
-
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.
Geändert von lammpee (27.04.10 um 19:21 Uhr)
-
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.
-
Also müsste ich immer beim mouseDown, erst überprüfen was für Objekte sich noch auf den Koordinaten des Mauszeigers befinden und die unteren dann deaktivieren.
-
So das Problem hat sich jetzt erledigt, habs letztendlich doch hinbekommen.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
void Room_MouseMove(object sender, MouseEventArgs e) { foreach (Unit unit in GroundGrid.Children) { unit.IsHitTestVisible = true; } List<UIElement> uiElementList = VisualTreeHelper.FindElementsInHostCoordinates(e.GetPosition(null), GroundGrid as Canvas) as List<UIElement>; if (uiElementList != null) foreach (UIElement uiElement in uiElementList) { if (uiElement is Unit) { Unit unit = (Unit)uiElement; if (unit.IsTransparency(e.GetPosition(unit)) == true) { unit.IsHitTestVisible = false; } } } }
Ähnliche Themen
-
Schaltflächen
Von AnnJ im Forum Flash PlattformAntworten: 4Letzter Beitrag: 23.11.07, 07:40 -
Schaltflächen fixieren?
Von vaporizer im Forum Flash PlattformAntworten: 4Letzter Beitrag: 13.12.03, 14:07 -
Schaltflächen
Von Avariel im Forum CSSAntworten: 2Letzter Beitrag: 18.09.03, 08:04 -
NAV-Schaltflächen Microsoft
Von mabuse im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 11.01.03, 23:11 -
Transparente Tabelle ABER nicht transparente Schrift
Von Madin im Forum CSSAntworten: 2Letzter Beitrag: 26.03.02, 09:29





Zitieren
Login




