Button windows phone中双击的问题

Button windows phone中双击的问题,button,windows-phone-7,double-click,Button,Windows Phone 7,Double Click,我在我的应用程序中发现一个奇怪的点击问题。我有42个按钮,以日历的形式6x7排列。每个按钮都调用相同的函数doubletap,这是按钮的事件之一 问题是,连续点击两个按钮被视为双击第二个点击按钮 public void OnButtonDoubleTap(object sender, System.Windows.Input.GestureEventArgs e) { // function } 此函数通过xaml代码与所有42个按钮关联,如下所示 <Button x:Na

我在我的应用程序中发现一个奇怪的点击问题。我有42个按钮,以日历的形式6x7排列。每个按钮都调用相同的函数doubletap,这是按钮的事件之一

问题是,连续点击两个按钮被视为双击第二个点击按钮

public void OnButtonDoubleTap(object sender, System.Windows.Input.GestureEventArgs e)
{
       // function
}
此函数通过xaml代码与所有42个按钮关联,如下所示

<Button x:Name="b00" Content="" Height="60" Width="68" MinWidth="68" MinHeight="60" Click="OnClick" DoubleTap="OnButtonDoubleTap" Foreground="#FF171717" BorderThickness="0" Hold="OnButtonLongPress" Style="{StaticResource DateButtonTemplate}" FontFamily="{StaticResource CicleFina}" />
<Button x:Name="b01" Content="" Height="60" Canvas.Left="68" Width="68" MinWidth="68" MinHeight="60" Click="OnClick" DoubleTap="OnButtonDoubleTap" Hold="OnButtonLongPress" Foreground="#FF171717" BorderThickness="0" Style="{StaticResource DateButtonTemplate}" FontFamily="{StaticResource CicleFina}"/>
<Button x:Name="b02" Content="" Height="60" Canvas.Left="136" Width="68" MinWidth="68" MinHeight="60" Click="OnClick" DoubleTap="OnButtonDoubleTap" Hold="OnButtonLongPress" Foreground="#FF171717" BorderThickness="0" Style="{StaticResource DateButtonTemplate}" FontFamily="{StaticResource CicleFina}"/>
<Button x:Name="b03" Content="" Height="60" Canvas.Left="204" Width="68" MinWidth="68" MinHeight="60" Click="OnClick" DoubleTap="OnButtonDoubleTap" Hold="OnButtonLongPress" Foreground="#FF171717" BorderThickness="0" Style="{StaticResource DateButtonTemplate}" FontFamily="{StaticResource CicleFina}"/>
<Button x:Name="b04" Content="" Height="60" Canvas.Left="272" Width="68" MinWidth="68" MinHeight="60" Click="OnClick" DoubleTap="OnButtonDoubleTap" Hold="OnButtonLongPress" Foreground="#FF171717" BorderThickness="0" Style="{StaticResource DateButtonTemplate}" FontFamily="{StaticResource CicleFina}"/>

知道为什么会这样吗


Alfah

我通过捕获第一次点击和第二次点击解决了这个问题。 检查发送方的名称,仅当两者的名称相同时才执行此功能

第一次单击在OnClick函数上捕获,第二次单击在OnDoubleTap函数上捕获

public void OnClick(object sender, RoutedEventArgs e)
{
    Button nbut = sender as Button;
    m_captureFirstClick = nbut.Name;
}

public void OnButtonDoubleTap(object sender, System.Windows.Input.GestureEventArgs e)
{
    Button temp = sender as Button;
    if (temp.Name == m_captureFirstClick)
    {
        // do what you want to do
    }
}

Alfah

我不确定它是否与您的问题直接相关,但处理
单击事件和
双击事件可能会导致问题,因为当用户doubletaps@Matt关于如何防止这种情况的任何建议。这42个按钮是日期,双击打开一个页面,我们可以在其中添加日期注释。因此,两次点击不同的按钮会打开一个页面,在第二次点击的按钮/日期上添加注释,这根本不是一个理想的行为。处理单次点击和双次点击(就触摸屏设备的用户而言,点击与点击相同)会导致混淆,无法发现。用户也不希望一个“按钮”分别响应单次和双次点击。使用关联菜单访问辅助功能。您还应该使用内置日历作为预期功能的参考,因为这是用户对日历界面的预期行为。