【发布时间】:2012-01-13 03:26:24
【问题描述】:
我在我的应用中发现了一个奇怪的点击问题。我有 42 个以日历形式排列的 6x7 按钮。每个按钮都调用相同的函数 OnDoubleTap,这是按钮的事件之一。
问题是,连续点击两个按钮被视为对第二个点击按钮的双击。
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}"/>
知道为什么会这样吗?
阿尔法
【问题讨论】:
-
我不确定它是否与您的问题直接相关,但同时处理
Click和DoubleTap事件是一条很可能导致问题的路线,因为这两个事件都会在用户被解雇时被解雇双击 -
@Matt 关于如何防止这种情况的任何建议。这 42 个按钮是日期,双击会打开一个页面,我们可以在其中添加日期注释。因此,两次点击不同的按钮会打开一个页面,以在第二次点击的按钮/日期上添加注释,这根本不是所需的行为。
-
同时处理单次和双击(就触摸屏设备的用户而言,点击与点击相同)会导致混淆并且无法被发现。用户也不希望“按钮”分别响应单击和双击。使用上下文菜单访问辅助功能。您还应该使用内置日历作为预期功能的参考,因为这是用户期望日历界面的行为。
标签: button windows-phone-7 double-click