2014-01-30 137 views
0

有没有人知道我怎么才能添加事件,每当我按我的listbox它会直接运行我的代码。我需要它来改变我的listbox选定的项目。这是我的xaml点击并按住列表框Windows Phone

<ListBox x:Name="ListNabi" SelectionChanged="ListNabi_SelectionChanged" ItemsSource="{Binding}" Tap="ListNabi_Tap" Hold="ListNabi_Hold"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Margin="5,0,5,0"> 
       <!--<Image Source="{Binding ImageSource}" Stretch="None"/>--> 
       <Grid Width="480" Background="White"> 
        <Image x:Name="listDaun" Source="/Images/Button/Button List.png" 
        Margin="0,5,5,5" Width="38" HorizontalAlignment="Left"></Image> 
        <TextBlock x:Name="namaNabi" TextWrapping="NoWrap" 
        Text="{Binding Name}" FontFamily="{StaticResource PhoneFontFamilyNormal}" 
        FontSize="36" Foreground="#00ADCE" Margin="40,5,0,5"></TextBlock> 
        <Rectangle Margin="0,50,0,0" Height="2" Fill="#00ADCE" Width="480"/> 
       </Grid> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

而在CS我不喜欢这样的:

private void ListNabi_Hold(object sender, System.Windows.Input.GestureEventArgs e) 
{ 
    changeColor("#00ADCE", "#FFFFFF", "#FFFFFF", "/Images/Button/Button List1.png"); 
} 

private void ListNabi_Tap(object sender, System.Windows.Input.GestureEventArgs e) 
{ 
    if (ListNabi.SelectedIndex != -1) 
    { 
     id = ListNabi.SelectedIndex; 
    } 
    MessageBox.Show("tes"); 
    changeColor("#00ADCE", "#FFFFFF", "#FFFFFF", "/Images/Button/Button List1.png"); 
} 

private void ListNabi_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (ListNabi.SelectedIndex != -1) 
    { 
     id = ListNabi.SelectedIndex; 
     changeColor("#00ADCE", "#FFFFFF", "#FFFFFF", "/Images/Button/Button List1.png"); 
     NavigationService.Navigate(new Uri("/Pages/25_Nabi/DetailPage.xaml?id=" 
     + ListNabi.SelectedIndex, UriKind.Relative)); 
     ListNabi.SelectedIndex = -1; 
    } 
} 

但它将只运行我的代码(在这种情况下changeColor())每当我认为我的一段时间后或后listbox我释放我的手指。当我的手指开始触摸时,是否有任何事件可以用来开始运行我的代码?

回答

0

为此使用以下事件:ManipulationStarted,ManipulationDeltaManipulationCompleted。您将获得所需的一切,从位置到不同触摸点的数量。

你可以用它做复杂的事情,比如拖拽。

+0

我需要它只是为了更改我的列表框中选择的项目颜色。但是当我使用操作...我无法改变它。任何解决方案 – albilaga

+0

它适用于我平时。 –

+2

是的,一个例子会很好。 –