InputManager – zachycení interakce nejen myši ve WPF


Zachycení kliků myši např. na celém okně je možné ve WPF detekovat pomocí třídy InputManager. V konstruktoru okna pak stačí přiřadit událost pro PreProcessInput a kontrolovat, jestli je vstup z myši:

public MainWindow()
{
  InputManager.Current.PreProcessInput += (sender, e) =>
  {
    if (e.StagingItem.Input is MouseButtonEventArgs)
      MainWindow_MouseDoubleClick(sender, (MouseButtonEventArgs)e.StagingItem.Input);
  };
}

A pak ještě definice a provedení události:

private void MainWindow_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
  if (e.ClickCount >= 2)
  {
    FrameworkElement element = e.Device.Target as FrameworkElement;
    if(element == null)
      return;
    // vlastní kód
  }
}

, , ,

Komentáře jsou uzavřeny.