public void OnMouseButtonDown(object sender, MouseButtonEventArgs e) { e.Handled = true; if (ButtonState.IsDrag) { _timerDoubleClick.Stop(); _timerHeldClick.Stop(); ButtonState.Reset(); } if (ButtonState.IsInactive) { _timerHeldClick.Start(); _timerDoubleClick.Start(); ButtonState.SetMouseDown(); } ButtonState.Start.PositionInformation = e; ButtonState.Start.EventOrigin = sender; }