Como posso criar um mouse de Estado sobre Silverlight para um painel de pilha?
-
12-09-2019 - |
Pergunta
Eu estou tentando criar um estado mouse que ele muda sua opacidade quando um mouse está sobre o painel de pilha.
Eu criei o estado, e criou um evento mouse_enter para o painel de pilha, e no código por trás do arquivo cs, tenho o seguinte código no evento Mouse_Enter.
MouseOver.Begin ();
Onde MouseOver é o nome do storyboard, mas quando meu mouse está pairando sobre o painel de pilha ou mesmo clique no painel de pilha, nada aconteceu, o que eu estou ausente?
Graças
PlayKid
Solução
Eu descobri a mim mesmo.
Com este código:
VisualStateManager.GoToState
Obrigado a todos.
Outras dicas
Você tem certeza de que o evento é acionado (você ter ligado o evento corretamente)? Tente verificar usando uma caixa de mensagem ou algo assim. (System.Windows.MessageBox.Show()
)
Tem certeza que o storyboard funciona bem em outras situações (tentou fazê-lo no carregamento da página ou algo assim?)
Se ambos esses trabalhos, por favor, explicar como você foi sobre como adicionar o manipulador de eventos.
Na minha experiência, ligar um evento Mouse_Enter ao painel não funciona porque o conteúdo dentro das extremidades do painel até roubar o evento. Minha solução usual é definir um alvo transparente que cobre a área que eu quero eventos do mouse para e manter esse item no topo da árvore visual. Assim, o XAML é algo como:
<StackPanel x:Name="ContentPanel" SizeChanged="ContentPanelSizeChanged" >
< /*Some content here */ >
</StackPanel>
<Canvas x:Name="HitTarget" Mouse_Enter="HitTargetMouseEnter" />
E, em seguida, o manipulador ContentPanelSizeChanged define o tamanho da tela HitTarget ser o (processado) tamanho real do StackPanel. A mesma coisa funciona para eventos MouseButtonDown e eu presumo que funciona para eventos MouseWheel também. Eu recomendo a tentar as sugestões de solução de problemas de Senthil, mas se você não pode obter o evento para fogo em tudo (que eu presumo é o problema), tentar dar um presente.