내 응용 프로그램에 AlwaysOnTop
동작이 있으며 마우스를 놓을 때 포커스를 잃고 싶습니다. 상황에 맞는 메뉴가있는 버튼이 있습니다. 문제는 현재는 A ContextMenu
가 자동으로 마우스가 내 방 창문의 자식에 여전히 경우에도,가 터 MouseLeave
이벤트가 열립니다, 그것은 바로 내가 시도ContextMenu가 열릴 때 MouseLeave가 발생합니다.
private void This_MouseLeave(object sender, MouseEventArgs e)
{
if (!this.IsMouseOver)
{
OtherExternalWindow.Focus();
}
}
다른 외부 응용 프로그램에 포커스를 설정하기 때문에 종료 마우스가 끝나지 않은 경우 검사를 추가하지만 컨텍스트 메뉴가 내 창 (?)의 하위 항목으로 간주되지 않는 것 같습니다. 나는 이것이 모든 ContextMenus의 이름을 지정하고 그것들 중 어떤 것이 열려 있는지를 확인함으로써 성취 될 수 있다고 생각하지만, 다른 방법으로 불가능하지 않다면이 접근법을 피하고 싶습니다.
마우스를 놓을 때 포커스를 전환하는 방법은 있지만 상황에 맞는 메뉴 동작을 중단하지 않으려면 어떻게해야합니까?
ContextMenu가 창 자식이 아닙니다. 그것은 일종의 창문입니다. 따라서 마우스가 ContextMenu 위로 이동하면 실제로는 창을 벗어납니다. – mm8