2013-07-07 33 views
0

我的问题:处理VisualStates约XAML

我想开发WP8 IN/OUT菜单滑动

所以,我的代码是未来:

<VisualStateManager.VisualStateGroups> 
     <VisualStateGroup x:Name="ShowHideMenu"> 
      <VisualStateGroup.Transitions> 
       <VisualTransition GeneratedDuration="0:0:0.3"/> 
      </VisualStateGroup.Transitions> 
      <VisualState x:Name="ShowMenu"> 
       <Storyboard> 
        <DoubleAnimation Duration="0" To="335" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="stackPanel" d:IsOptimized="True"/> 
       </Storyboard> 
      </VisualState> 
      <VisualState x:Name="HideMenu"/> 
     </VisualStateGroup> 
    </VisualStateManager.VisualStateGroups> 

我的按钮的代码:

<Button Content="Button" Margin="0,0,145,0"> 
       <i:Interaction.Triggers> 
        <i:EventTrigger EventName="Tap"> 
         <ec:GoToStateAction StateName="ShowMenu"/> 
        </i:EventTrigger> 
       </i:Interaction.Triggers> 
      </Button> 

如何使它显示菜单,如果其状态是HideMenu和隐藏,如果它是展会N +

实际上它看起来像这样:

ShowMenu state

HideMenu state

回答

2

而不是使用一个Button的,你可以使用一个ToggleButton,这样就可以使用CheckedUnchecked事件:

<ToggleButton Margin="0,0,145,0"> 
    <ToggleButton.Content> 
    <TextBlock Text="Button"/> 
    </ToggleButton.Content> 
    <i:Interaction.Triggers> 
    <i:EventTrigger EventName="Checked"> 
     <ec:GoToStateAction StateName="ShowMenu"/> 
    </i:EventTrigger> 
    <i:EventTrigger EventName="Unchecked"> 
     <ec:GoToStateAction StateName="HideMenu"/> 
    </i:EventTrigger> 
    </i:Interaction.Triggers> 
</ToggleButton>