Come posso creare un Hover Stato Mouse su Silverlight per un pannello Stack?
-
12-09-2019 - |
Domanda
Sto cercando di creare uno stato del mouse hover, che cambia la sua opacità quando un mouse si trova sopra il pannello dello stack.
Ho creato lo Stato, e ha creato un evento mouse_enter per il pannello dello stack, e sul codice dietro file di cs, ho il seguente codice sull'evento Mouse_Enter.
MouseOver.Begin ();
Dove MouseOver è il nome del StoryBoard, ma quando il mio mouse passa sopra il pannello pila o anche fare clic sul pannello pila, non è successo niente, che cosa mi manca?
Grazie
visualizzarloKid
Soluzione
ho capito io.
Con questo codice:
VisualStateManager.GoToState
Grazie a tutti.
Altri suggerimenti
Sei sicuro che l'evento viene generato (avete cablato l'evento correttamente)? Prova a controllare utilizzando una finestra di messaggio o qualcosa del genere. (System.Windows.MessageBox.Show()
)
Sei sicuro che lo storyboard funziona bene in altre situazioni (provato su caricamento della pagina o qualcosa del genere?)
Se entrambi questi lavori, si prega di spiegare come si è andato su come aggiungere il gestore di eventi.
Nella mia esperienza, collegare un evento Mouse_Enter al pannello non funziona perché il contenuto all'interno del pannello finisce per rubare l'evento. La mia solita soluzione è quella di istituire un obiettivo trasparente che copre l'area che voglio eventi del mouse per e mantenere tale elemento sulla parte superiore della struttura ad albero visuale. Così il XAML sembra qualcosa di simile:
<StackPanel x:Name="ContentPanel" SizeChanged="ContentPanelSizeChanged" >
< /*Some content here */ >
</StackPanel>
<Canvas x:Name="HitTarget" Mouse_Enter="HitTargetMouseEnter" />
E poi il gestore ContentPanelSizeChanged imposta la dimensione del HitTarget Canvas di essere il reale (resa) dimensione del StackPanel. Stessa cosa funziona per gli eventi MouseButtonDown e vorrei presumere che funziona per gli eventi MouseWheel pure. Vorrei consigliamo di provare i suggerimenti di risoluzione dei problemi di Senthil, ma se non è possibile ottenere l'evento di sparare a tutti (che io pretendo è il problema), dare una prova.