Ist es möglich, einen WPF-Mouseover zu fälschen?

8

Ich habe eine Datenvorlage mit einer Textbox und einer Schaltfläche mit einigen Stilen darauf. Ich möchte, dass die Schaltfläche den Mauszeiger über den Status zeigt, wenn der Fokus auf der Textbox daneben liegt. Ist das möglich?

Ich denke, es würde so etwas beinhalten. Ich kann das Textfeld durch Verwendung von FindVisualChild und FindName abrufen. Dann kann ich das GotFocus-Ereignis in der Textbox einstellen, um etwas zu tun.

%Vor%

Hier in TB_GotFocus stecke ich fest. Ich kann den Knopf bekommen, mit dem ich die Maus über den Zustand von zeigen möchte, aber ich weiß nicht, welches Ereignis zu ihm gesendet werden soll. MouseEnterEvent ist nicht erlaubt.

%Vor%     
Jippers 21.01.2009, 00:33
quelle

2 Antworten

2

Ich glaube nicht, dass es möglich ist, das Ereignis zu fälschen, aber Sie können den Button zwingen, sich zu rendern, als ob er MouseOver hätte.

%Vor%

Sie müssen auf PresentationFramework.Aero.dlll verweisen, damit dies funktioniert, und dann funktioniert es nur unter Vista für das Aero-Design.

Wenn Sie möchten, dass es für andere Themen funktioniert, sollten Sie für jedes Thema, das Sie unterstützen möchten, eine benutzerdefinierte Kontrollvorlage erstellen.

Siehe Ссылка für Tipps

    
Jesper Larsen-Ledet 21.01.2009 09:33
quelle
0

Als Follow-up zu jesperlls Kommentar, denke ich, dass Sie es schaffen können, eine benutzerdefinierte Vorlage für jedes Thema zu erstellen, indem Sie den Stil dynamisch auf den von Ihnen gewünschten / null setzen.

Hier ist mein Fenster, mit dem Stil definiert (aber nicht auf etwas gesetzt).

%Vor%

Anstatt den Stil über Trigger in der Vorlage festzulegen, können Sie Ereignisse in Ihrer .cs-Datei wie folgt verwenden:

...

%Vor%

Sie erhalten einen Verweis auf den Stil im Konstruktor und setzen ihn dann dynamisch / unset. Auf diese Weise können Sie festlegen, wie Ihr Stil in Xaml aussehen soll, und Sie müssen sich nicht auf neue Abhängigkeiten verlassen.

    
Michael 26.01.2009 15:21
quelle

Tags und Links