2014-08-28 17 views

回答

1

有幾種可能的方法可以做到這一點,但基本的想法是,您可以將菜單添加到隱藏或摺疊狀態,然後在Hold事件中觸發動畫。下面是一個簡單的例子(使用交互式DLL System.Windows.Interactivity和Microsoft.Expression.Interactions.Core):

<Grid xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
     xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"> 
    <Grid.Resources> 
     <Storyboard x:Name="ShowMenu"> 
      <DoubleAnimation Storyboard.TargetName="translate" Storyboard.TargetProperty="X" 
          To="0" Duration="0:0:0.3" /> 
     </Storyboard> 
     <Storyboard x:Name="HideMenu"> 
      <DoubleAnimation Storyboard.TargetName="translate" Storyboard.TargetProperty="X" 
          To="-300" Duration="0:0:0.3" /> 
     </Storyboard> 
    </Grid.Resources> 

    <Grid Width="300" Background="LightBlue"> 
     <Grid.RenderTransform> 
      <TranslateTransform x:Name="translate" X="-300" /> 
     </Grid.RenderTransform> 

     <!-- Menu popup content here --> 
     <TextBlock Text="Menu"> 
      <i:Interaction.Triggers> 
       <i:EventTrigger EventName="Hold"> 
        <ei:ControlStoryboardAction Storyboard="{StaticResource HideMenu}" ControlStoryboardOption="Play" /> 
       </i:EventTrigger> 
      </i:Interaction.Triggers> 
     </TextBlock> 
    </Grid> 

    <Grid> 
     <!-- Item content here --> 
     <TextBlock Text="Item"> 
      <i:Interaction.Triggers> 
       <i:EventTrigger EventName="Hold"> 
        <ei:ControlStoryboardAction Storyboard="{StaticResource ShowMenu}" ControlStoryboardOption="Play" /> 
       </i:EventTrigger> 
      </i:Interaction.Triggers> 
     </TextBlock 
    </Grid> 
</Grid> 
+0

謝謝男人,它似乎工作! – 2014-08-29 12:07:36

1

您可以將此菜單包含在您的Item Template中,並將其Visibility設置爲Collapsed。然後將代碼添加到將顯示它的Hold事件中。看看Storyboard類可能的動畫。