2010-11-04 8 views
0

Je pense que le titre de ma question est un peu de désordre! Pardon!Comment gérer deux grille dans la même fenêtre pour apparaître et disparaître avec DoubleAnimation?

J'ai deux Grille dans la même fenêtre. D'abord nommé loginBox et le second est operationBox. Je veux disparaître loginBox après la validation de l'utilisateur, en utilisant DoubleAnimation classe, puis operationBox apparaîtra en même temps (pendant 00:00:01).

Scénario:

  1. Grille nommé Loginbox montre lorsque la fenêtre affichée. Après que l'utilisateur a cliqué sur btnLogin, loginBox commencer à disparaître en utilisant DoubleAnimation sur sa propriété Opacity et dans le même temps, operationBox apparaîtra avec la même technique.

  2. Après l'opération de fin, l'utilisateur clique sur btnLogout et operationBox commencent à disparaître et loginBox apparaissant par DoubleAnimation.

Le problème est que la grille est operationBox sur la grille loginBox, l'utilisateur ne peut rien faire dans loginbox! Quoi que operationBox.Opacity=0, mais rien ne peut faire avec loginBox grille au démarrage!

CODE:

<!--Login Box--> 
     <Grid Background="Transparent" Name="loginBox" VerticalAlignment="Center" HorizontalAlignment="Center"> 
      <Button Content="ورود" Height="23" HorizontalAlignment="Left" Margin="344,199,0,0" Name="btnLogin" VerticalAlignment="Top" Width="75" IsDefault="True" 
        Click="btnLogin_Click" > 
       <Button.Triggers> 
        <EventTrigger RoutedEvent="Button.Click"> 
         <BeginStoryboard>        
          <Storyboard>         
           <DoubleAnimation 
            Storyboard.TargetName="loginBox" 
            Storyboard.TargetProperty="(Grid.Opacity)" 
            From="1" To="0" Duration="0:0:1" AutoReverse="False" /> 
           <DoubleAnimation 
            Storyboard.TargetName="operationBox" 
            Storyboard.TargetProperty="(Grid.Opacity)" 
            From="0" To="1" Duration="0:0:1" AutoReverse="False" /> 
          </Storyboard> 
         </BeginStoryboard> 
        </EventTrigger> 
       </Button.Triggers> 
      </Button> 
. 
. 
. 
</Grid> 

. 
. 
. 

     <!--Operation Box--> 
     <Grid Background="Transparent" Name="operationBox" Opacity="0" Visibility="Hidden"> 
... 
      <Button Content="خروج" Height="23" 
        HorizontalAlignment="Left" Margin="15,324,0,0" Name="btnLogout" 
        VerticalAlignment="Top" Width="75" Click="btnLogout_Click"> 
       <Button.Triggers> 
        <EventTrigger RoutedEvent="Button.Click"> 
         <BeginStoryboard> 
          <Storyboard> 
           <DoubleAnimation 
            Storyboard.TargetName="operationBox" 
            Storyboard.TargetProperty="(Grid.Opacity)" 
            From="1" To="0" Duration="0:0:1" AutoReverse="False" /> 

           <DoubleAnimation 
            Storyboard.TargetName="loginBox" 
            Storyboard.TargetProperty="(Grid.Opacity)" 
            From="0" To="1" Duration="0:0:1" AutoReverse="False" /> 
          </Storyboard> 
         </BeginStoryboard> 
        </EventTrigger> 
       </Button.Triggers> 
      </Button> 
     </Grid> 

et enfin, Désolé pour la mauvaise grammaire! :)

Répondre

1

Essayez d'ajouter operationBox.IsHitTestVisible = "false"

Mise à jour

Essayez d'ajouter quelque chose comme ça

<Grid Grid.ZIndex="4" Background="Green" Opacity="0.4" Name="loginBox" VerticalAlignment="Center" HorizontalAlignment="Center"> 
    <Grid.Style> 
     <Style> 
      <Style.Triggers> 
       <Trigger Property="Grid.Opacity" Value="0.0"> 
        <Setter Property="Grid.IsHitTestVisible" Value="False"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </Grid.Style> 
<!-- ... --> 
+0

Cette marque 'operationBox' être désactiver même si' Opacité = 1.0', le problème est toujours vivant! :( – Jalal

+0

Je voulais dire quand l'opacité se transforme en 0.0 :) –

+0

Merci Méleak pour 'ZIndex'! : D – Jalal