Проблемы по двойному нажатию в Windows Phone - PullRequest
0 голосов
/ 05 декабря 2011

Я обнаружил странную проблему с краном в моем приложении.У меня 42 кнопки расположены 6х7 в виде календаря.Каждая кнопка имеет одну и ту же функцию OnDoubleTap, которая является одним из событий кнопки.

Проблема в том, что последовательные нажатия на две кнопки рассматриваются как двойное нажатие на вторую нажатую кнопку.

public void OnButtonDoubleTap(object sender, System.Windows.Input.GestureEventArgs e)
{
       // function
}

эта функция связана со всеми 42 кнопками через код xaml, подобный этому

<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}"/>

Есть идеи, почему это происходит?

Алфа

1 Ответ

1 голос
/ 06 декабря 2011

Я решил проблему, захватив первый щелчок и второй щелчок. Проверяйте имена отправителя и выполняйте функцию только в том случае, если у обоих одинаковые значения.

Первый щелчок фиксируется функцией 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

...