繁体   English   中英

点击并按住列表框Windows Phone

[英]Tap and hold Listbox Windows Phone

有人知道我按listbox时如何添加事件,它将直接运行我的代码。 我需要它来更改我的listbox所选项目。 这是我的xaml

<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;
    }
}

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

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

您可以使用它进行复杂的操作,例如拖动和捏合。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM