C # WPF - DragMove и нажмите

Мне нужен элемент управления для вызова DragMove () для окна на MouseLeftButton вниз, но все еще функционирует при нажатии.

Если вызывается DragMove (), Click и MouseLeftButtonUp никогда не запускаются, потому что DragMove () является блокирующим вызовом, пока они не отпустят кнопку мыши.

Кто-нибудь знает обходной путь, чтобы сделать эту работу?

Я пробовал этот взлом на основе Thread.Sleep, который позволяет клик сработать, если онs быстрее 100 миллисекунд, но он не работает надежно для пользователей:

                ThreadPool.QueueUserWorkItem(_ =>
                    {
                        Thread.Sleep(100);

                        Dispatcher.BeginInvoke((Action)
                            delegate
                            {
                                if (Mouse.LeftButton == MouseButtonState.Pressed)
                                {
                                    window.DragMove();
                                }
                            });
                    });

РЕДАКТИРОВАТЬ: Ну, этот взлом работал ...

                window.DragMove();
                RaiseEvent(new MouseButtonEventArgs(e.MouseDevice, e.Timestamp, MouseButton.Left) 
                    { 
                        RoutedEvent = MouseLeftButtonUpEvent 
                    });

Кто-нибудь есть лучше?

Ответы на вопрос(1)

Ваш ответ на вопрос