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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top