Bouton de réglage Visiblity avec la Souris

Je veux afficher un bouton uniquement lorsque l'utilisateur place la souris au-dessus de son emplacement, une fois que la souris quitte la zone, le bouton doit retourner à être Caché. Voici mon code pour les boutons.

<StackPanel Name="ButtonOptions" Orientation="Horizontal" DockPanel.Dock="Bottom" Background="DarkBlue" Height="50" Width="auto">
    <!--<StackPanel.Resources>
        <Style TargetType="Button">
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Visibility" Value="Visible"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </StackPanel.Resources>-->
    <Button Name="LoginButton" FontSize="12" Click="LoginButton_Click" Content="Log In" Width="100" Height="31" Margin="50,0,0,0" 
            FontFamily="Arial" Visibility="Visible" IsEnabled="True" MouseEnter="LoginButton_MouseEnter" />
    <Button Name="OptionsButton" Content="Options" Width="100" Height="31" Margin="20,0,0,0" FontFamily="Arial"
            FontSize="12" Click="OptionsButton_Click" Visibility="Hidden" IsEnabled="False"/>
</StackPanel>

Les ressources de la section est commenté car j'ai essayé et ça ne marchait pas. Mon bouton se connecter a la suite de ce gestionnaire attachés..

LoginButton.MouseEnter += new MouseEventHandler(LoginButton_MouseEnter);

La méthode qui gère ce est..

private void LoginButton_MouseEnter(object sender, MouseEventArgs e)
{
    MessageBox.Show("Made in the login button listener for mouseOver");

    LoginButton.Visibility = Visibility.Visible;
}

Quand je lance mon application, rien ne se passe quand je mets plus de l'endroit où le bouton doit être. Cependant, si j'ai mis le bouton de connexion de la visibilité pour être Visible au départ, je peux voir le bouton, et lorsque je clique sur elle, mon journal dans la logique de la méthode pour les utilisateurs signe en est substituée, et je suis invité avec le message dans la boîte de MouseEventListener méthode pour "Made in le bouton de connexion écouteur pour survol". Non seulement cela, mais je reçois deux de ces messages (dès que je clique sur "Ok" pour la première fois, il apparaît immédiatement de nouveau) je ne suis pas sûr de savoir pourquoi il ne fonctionne pas, ni pourquoi ma méthode événement de clic est ignoré et MAINTENANT le mouseEvent méthode se produit.

Des idées ou de l'aide serait apprécié, merci!

  • Les événements ne se déclenche pas lorsqu'un bouton est caché ou s'est effondré.
  • N'utilisez pas de pop-ups pour diagnostiquer les souris de contrôle. Vous êtes l'obtention de deux pop-ups parce que quand vous passez la souris sur la boîte de dialogue pour la fermer, vous n'êtes plus on passe la souris sur l'élément qui a déclenché cela! Lorsque la boîte de dialogue se ferme, il va en tirer avec la souris sur l'événement.
  • Je pense que c'est vrai, mais vous pourriez être en mesure de le remplacer si vous obtenez IsHitTestVisible.
  • Comme mentionné ci-dessus Visibiliy.Caché pourrait provoquer le bouton pour arrêter de recevoir des événements de la souris. La documentation MSDN sur la Visibilité ne fait pas mention de cette même si. Si rien d'autre ne fonctionne essayez de basculer la Propriété d'Opacité au lieu de Visibilité et de voir si cela aide.
  • Je viens de proposer, à l'aide de l'opacité ainsi. Je suis sûr que vous aurez toujours les événements de la souris lorsque l'opacité est définie sur 0. Aussi, comme un bonus, vous pourriez penser à l'animation de l'opacité lorsque vous passez la souris sur de sorte que vous bouton fondus dans au lieu de sauter dans. Tout cela, bien sûr, est ignorant si ou de ne pas avoir d'éléments cachés est une bonne idée, en premier lieu!
  • Je pense que la raison pour laquelle j'ai été faire deux popUps est parce que j'ai définies dans le mouseEvent dans le XAML et le code derrière. J'ai supprimé le "LoginButton.MouseEnter += ...." ligne et le même comportement se produit, mais je ne reçois un pop-up boîte de dialogue. Votre animation idéale semble assez cool, même si je viens de commencer l'apprentissage de WPF (évidemment) et n'ont aucune idée de comment animer encore rien.
  • Li (et un peu MattBurland) - L'OPACITÉ de réglage fonctionne, merci pour l'aide tout le monde!

InformationsquelleAutor Ryan | 2012-03-07