MouseLeftButton의 Window에 대해 DragMove()를 호출하기위한 컨트롤이 필요하지만 클릭 할 때 여전히 작동합니다.C# WPF - DragMove 및 클릭하십시오.
DragMove()가 호출되면 DragMove()가 마우스 버튼을 놓을 때까지 차단 호출이므로 Click 및 MouseLeftButtonUp이 실행되지 않습니다.
누군가이 해결 방법을 알고 있습니까?
나는 그것이 100 밀리 초보다 더 빨리의 경우 클릭이 작업을 수행 할 수 있습니다 Thread.sleep를 기반으로 해킹을 시도하지만 사용자에게 안정적으로 작동하지 않습니다
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
});
누구나 더 나은 사람이 있습니까?
윈도우를 드래그하는 동안 클릭/마우스 업이 필요합니까? –
우리의 디자인은 구석에 DragMove를 허용하는 아이콘을 가지고 있습니다 만, 그것을 클릭하면 창의 일부분에서 패널 확장을 토글합니다. – jonathanpeppers