Левый клик стреляет по мышке вниз? - PullRequest
0 голосов
/ 19 августа 2011

Я привязываю жест левой кнопки мыши к кнопке WPF, ожидая, что она срабатывает только при щелчке мыши (MouseDown + MouseUp).Однако, похоже, что он срабатывает сразу после нажатия кнопки мыши (без отпускания).

  1. Это правильный способ привязки к щелчку левой кнопкой мыши?
  2. Как различитьщелчок и нажатие в обработчике события?

Пример кода:

public partial class WpfTest : UserControl
{
    // Gesture for clicking
    public static MouseGesture MouseClickGesture = new MouseGesture(MouseAction.LeftClick);

    // Logon command/gesture binding
    public static RoutedUICommand LogonCommand = new RoutedUICommand();
    public static MouseBinding LogonClickBinding = new MouseBinding(LogonCommand, MouseClickGesture);


    public WpfTest()
    {
        InitializeComponent();

        CommandBindings.Add(new CommandBinding(LogonCommand, LogonClicked));
        Logon.InputBindings.Add(LogonClickBinding);
    }

    private void LogonClicked(object sender, ExecutedRoutedEventArgs e)
    {
        MessageBox.Show("LogonClicked");
    }
}

1 Ответ

2 голосов
/ 19 августа 2011

Я бы не использовал эти привязки, поскольку я знаю, что вы не можете получить от них должный щелчок (серьезно, кто это разработал?).Из того, что я видел, на удивление трудно получить фактический клик по произвольному элементу управления .Я бы посоветовал вам обернуть кнопку вокруг того, что вы хотите, чтобы на нее нажимали, и использовать кнопку Command /Click-Event.

Измените шаблон кнопки на этот, чтобы сделать его невидимым:

<ControlTemplate TargetType="{x:Type Button}">
    <ContentPresenter/>
</ControlTemplate>
...