Mouseover ohne Storyboard?

Hallo,
ich muss mich zwangsweise von der Schule aus mit Expression Blend befassen, finde es aber durchaus interessant, habe jetzt aber leider ein kleines Problem.

Ich habe ein Bild, wo verschiedene Bauteile gezeigt werden. Jetzt habe ich über ein Bauteil das Steuerelement Border gelegt. Jetzt wollte ich eign., dass wenn der User mit der Maus über den Border geht, ein Text angezeigt wird.

Also bin ich auf "Auslöser" gegangen, "+Ereignis" hinzufügen, wähle das Border aus und gebe ihm die Eigenschaft MouseMove. Dann bestätige ich das und werde gefragt, ob ich ein bereits vorhandenes Storyboard auswählen will oder ein neues erstellen möchte. Ich möchte eines erstellen, erstelle auch noch zusätzlich das Textfeld, welches angezeigt werden soll. Gebe dem Textfeld eine Opacity von 0% die auf 100% ansteigt, wenn man den Border mit der Maus berührt.

Mein Problem ist jetzt, dass das ganze Storyboard abhängig ist: Es wird nichts angezeigt, ich berühre mit der Maus das Border, der Text erscheint, das Storyboard läuft durch und dann verschwindet der Text nicht. Ist ja auch eign. logisch, weil ich es nicht im Storymode deklariert habe. Aber eign. will ich dass das Programm sich an der Maus orientiert: Wenn die Maus über dem Border ist, dann soll der Text angezeigt werden, sobald die Maus weg ist, soll auch der Text verschwinden. In der Hilfe finde ich nichts dazu, bin froh über jede Hilfe, Links und Ideen.

Hoffe ihr habt mein Problem verstanden.

Gruß

kuzdu

MouseEnter, MouseLeave

Hallo

MouseMove durch MouseEnter ersetzen (ist vom Prinzip wie MouseOver).

also:

Border.MouseEnter -> storyboard.begin
Border.MouseLeave -> storyboard.stop (bzw. storyboard.remove)

Anderer Vorschlag...

Bild von SilverLaw

Hallo kuzdu,

eines vorweg... um den Zwang, sich für die Schule mit Blend zu beschäftigen beneide ich Dich Wink

Zum Thema:

Wie wäre es, das ganze mit VisualStates zu lösen. Richte für Dein Border zwei VisualStates ein, "MausDrin" und "MausDraussen". Bei MausDrin blendest Du den Text ein und bei MausDraussen blendest Du ihn wieder aus. Geht komplett einfach in Blend. Auslösen kannst Du die States dann über das Behavior (Verhalten): GotoVisualState.

Erweitern und verallgemeinern ließe sich das noch dadurch, dass Du aus dem Border-Container mit dem Bild und dem Text darin ein Usercontrol baust. Das würde den Vorteil bieten, dass das wiederverwendbar wird. Du könntest Bild und Text als Eigenschaften des Usercontrols setzen.

Auf MSDN gibt es einen Code-Clip, der Behaviors (Verhalten) veranschaulicht und nebenbei auf VisualStates eingeht:

http://www.microsoft.com/germany/msdn/solve/codeclips/library.aspx?id=ms...

Beste Grüße,
M. (LawBot/SilverLaw)