2014-01-30 2 views
0

Кто-нибудь знает, как я могу добавить событие всякий раз, когда я нажимаю свой listbox, он будет напрямую запускать мой код. Мне нужно, чтобы он менял listbox. Это мой xaml:Нажмите и удерживайте Listbox 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, ManipulationDelta и ManipulationCompleted. Вы получите все, что вам нужно, от позиций до количества различных точек касания.

Вы можете делать сложные вещи с ним, как перетаскивание и защемление.

+0

Мне нужно это, чтобы изменить свой цвет выбранного вами списка. Но когда я использую манипуляции ... я не могу ее изменить. Любое решение? – albilaga

+0

Это работает для меня нормально. –

+2

Да, пример будет хорошим. –

Смежные вопросы