2014-04-27 32 views
3

射擊在我的Windows Phone 8.1的普遍應用,我有在ItemTemplate一個按鈕ListView,我需要看的時候該按鈕的ManipulationStartedManipulationCompleted事件被觸發。目前ManipulationStarted工作正常,但ManipulationCompleted沒有。有人可以解釋爲什麼嗎?ManipulationCompleted事件上沒有按鈕

SnapsPage.xaml

<Grid Grid.Row="0" Background="#88686868"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="130" /> 
     <RowDefinition Height="*" /> 
    </Grid.RowDefinitions> 

    <StackPanel Grid.Row="0" Orientation="Vertical" Margin="20,0,0,0"> 
     <TextBlock Text="{Binding Path=Manager.Account.Username, FallbackValue='loading...'}" Margin="0,12,0,0" Style="{ThemeResource HeaderTextBlockStyle}"/> 
     <TextBlock x:Uid="Snaps" Text="SNAPS" Style="{ThemeResource TitleTextBlockStyle}" Typography.Capitals="SmallCaps"/> 
    </StackPanel> 

    <ScrollViewer x:Name="ScrollViewer" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" 
        Padding="0,0,0,20" Grid.Row="1" HorizontalContentAlignment="Stretch"> 
     <ListView HorizontalContentAlignment="Stretch" 
        ItemsSource="{Binding Path=Manager.Account.Snaps}"> 
      <ListView.ItemTemplate> 
       <DataTemplate> 
        <Button x:Name="ButtonSnap" Style="{StaticResource BasicEmptyButtonStyle}" 
          ManipulationStarting="ButtonSnap_OnManipulationStarting" 
          ManipulationCompleted="ButtonSnap_OnManipulationCompleted" 
          ManipulationMode="All" 
          Command="{Binding ElementName=ItemsControl, Path=DataContext.TryDownloadMediaCommand}" 
          CommandParameter="{Binding}"> 

         <!-- Content Here --> 

        </Button> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
      <ListView.ItemsPanel> 
       <ItemsPanelTemplate> 
        <VirtualizingStackPanel HorizontalAlignment="Stretch"></VirtualizingStackPanel> 
       </ItemsPanelTemplate> 
      </ListView.ItemsPanel> 
     </ListView> 
    </ScrollViewer> 
</Grid> 

<Grid Grid.Row="0" x:Name="MediaGrid" Background="#FF000000" IsHitTestVisible="False"> 
    <Image x:Name="MediaImage" IsHitTestVisible="False"/> 

    <Grid Width="45" Height="45" Background="#99000000" 
      VerticalAlignment="Top" HorizontalAlignment="Right" Margin="25"> 
     <TextBlock Text="10" VerticalAlignment="Center" HorizontalAlignment="Center" FontFamily="Segoe WP Semibold" FontSize="24" /> 
    </Grid> 
</Grid> 

SnapsPage.cs

private void ButtonSnap_OnManipulationStarting(object sender, ManipulationStartingRoutedEventArgs e) 
    { 
     Debug.WriteLine("ButtonSnap_OnManipulationStarting"); 
     var button = sender as Button; 
     if (button == null) return; 
     var snap = button.DataContext as Snap; 
     if (snap == null) return; 
     _relevantSnap = snap; 

     _isFingerDown = true; 
     _scrollYIndex = ScrollViewer.VerticalOffset; 
     _holdingTimer.Start(); 
    } 

    private void ButtonSnap_OnManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e) 
    { 
     Debug.WriteLine("ButtonSnap_OnManipulationCompleted"); 
     _isFingerDown = false; 

     if (_isMediaOpen) 
      DisposeMediaTidily(); 
    } 

回答

3

注:我的Windows Phone 8.1應用程序的XAML(Silverlight的不)

按鈕有系統的ManipulationMode測試其,根據the docs,意味着你不應該得到操縱事件。

元素必須具有比無或系統之外的ManipulationMode值是一個操縱事件源

+0

我有這個一個去報到以後。 (也沒有使用Silverlight) –