2012-04-20 2 views
2

Sur ma page principale J'ai un dispositif d'expansion qui a un déclencheur d'événement pour une animation comme ceci:Comportement étrange de expandeur

  <StackPanel.Triggers> 
       <EventTrigger RoutedEvent="Expander.Expanded" SourceName="expander"> 
        <EventTrigger.Actions> 
         <BeginStoryboard> 
          <Storyboard> 
           <DoubleAnimation From="0" To="1.2" Duration="0:0:0.35" Storyboard.TargetName="content1" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleX)" AutoReverse="False" /> 
          </Storyboard> 
         </BeginStoryboard> 
        </EventTrigger.Actions> 
       </EventTrigger> 
      </StackPanel.Triggers> 

      <Expander x:Name="expander" ExpandDirection="Right" OpacityMask="#6C806969" Background="#FF807171" > 
      <Grid x:Name="content1" Background="#FF807171" Width="378"> 
       ......user control inside here      
        <Grid.LayoutTransform> 
        <ScaleTransform ScaleX="0" ScaleY="1"/> 
       </Grid.LayoutTransform> 
      </Grid> 
     </Expander> 

Ce glisse juste l'expansion lentement. Mais dans l'une des zones de l'expandeur, j'ai un autre expandeur (l'un est positionné verticalement l'autre horizontalement)

L'expandeur horizontal fait partie d'un UserControl Quand j'élargis cet expandeur de quelle façon tire l'expandeur vertical de la fenêtre principale . aswell

<UserControl x:Class="WpfApplication4.AppPages.AddPost" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" 
      d:DesignHeight="464" d:DesignWidth="416"> 
    <Expander Header="expander1" Height="441" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top"> 
    ..... some content 
    </Expander> 

est-il de toute façon pour empêcher que cela se passe

+1

Essayez un 'Trigger' pour la propriété' IsExpanded' d'expander au lieu de 'EventTrigger'. Je pense que l'événement routé 'Expander.Expanded' continue et les deux expandeurs l'attrapent. – LPL

Répondre

1

C'est un exemple de code pour la suggestion dans mon commentaire:

<Expander x:Name="expander" ExpandDirection="Right" OpacityMask="#6C806969" Background="#FF807171"> 

    ... Content ... 

    <Expander.Style> 
     <Style TargetType="{x:Type Expander}"> 
      <Setter Property="LayoutTransform"> 
       <Setter.Value> 
        <ScaleTransform ScaleX="1" /> 
       </Setter.Value> 
      </Setter> 
      <Style.Triggers> 
       <Trigger Property="IsExpanded" Value="True"> 
        <Trigger.EnterActions> 
         <BeginStoryboard> 
          <Storyboard> 
           <DoubleAnimation From="0" To="1.2" Duration="0:0:0.35" AutoReverse="False" 
               Storyboard.TargetProperty="LayoutTransform.(ScaleTransform.ScaleX)" /> 
          </Storyboard> 
         </BeginStoryboard> 
        </Trigger.EnterActions> 
       </Trigger>  
      </Style.Triggers> 
     </Style> 
    </Expander.Style> 
</Expander>