programing

WPF MouseLeftButtonDown 이벤트 핸들러의 Ctrl 키 누름 조건

lovejava 2023. 7. 8. 10:25

WPF MouseLeftButtonDown 이벤트 핸들러의 Ctrl 키 누름 조건

WPF에 특정 키보드 키에 대한 추가 조건을 추가하는 방법MouseLeftButtonDown이벤트 이벤트?

예: + 키

private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{         
    ...
}
private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) {
    if(Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)) {
        MessageBox.Show("Control key is down");
    } else {
        MessageBox.Show("Control key is up");
    }
}

한정자만 탐지하려는 경우 다음을 사용할 수도 있습니다.

if (Keyboard.Modifiers == ModifierKeys.Control) {}
if (Keyboard.Modifiers == ModifierKeys.Shift) {}

기타. 여기 더 있습니다.

.NET 4.0에서는 다음을 사용할 수 있습니다.

Keyboard.Modifiers.HasFlag(ModifierKeys.Control)

위에서 그르제고르즈 고들레프스키가르츠 고들레프스키는Keyboard.Modifiers.HasFlag(ModifierKey.Control)사용할 수 있습니다.

@l33t는 성능이 그다지 뛰어나지 않다고 지적하지만, 코멘트에 따르면 성능이 개선된 것으로 보입니다.HasFlag.NET 4.5/4.6. (Enum을 만드는 것은 무엇인가의 벤치마크 결과 참조).깃발이 그렇게 느렸나요?아래의 의견 및 이 답변에도 포함됩니다.)

그러나 여기서의 결론으로 판단하면 여전히 기본 검사(즉, flagsToCheck & flags!= 0)를 수행하는 것만큼 빠른 것은 없습니다.

언급URL : https://stackoverflow.com/questions/1861195/ctrl-key-press-condition-in-wpf-mouseleftbuttondown-event-handler