C # WPF - DragMove i kliknij

Potrzebuję kontrolki, aby wywołać DragMove () dla okna na MouseLeftButton w dół, ale nadal działać po kliknięciu.

Jeśli DragMove () jest wywoływane, Click i MouseLeftButtonUp nie są nigdy uruchamiane, ponieważ DragMove () jest połączeniem blokującym, dopóki nie zwolnią przycisku myszy.

Czy ktoś zna obejście tego problemu?

Wypróbowałem ten hack w oparciu o Thread.Sleep, który pozwala działać, jeśli jest szybszy niż 100 milisekund, ale nie działa niezawodnie dla użytkowników:

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

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

EDYCJA: Cóż, ten hack zadziałał ...

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

Czy ktoś ma lepszy?

questionAnswers(1)

yourAnswerToTheQuestion