2017-12-29 85 views
0

기본적으로 다른 컴포넌트 (버튼 또는 텍스트 상자)에 초점을 맞추어 현재 초점에서 벗어나야합니다. 방금 ​​밖을 클릭하고 싶습니다. 예를 들어, 텍스트 상자를 클릭하고 무언가를 쓰는 경우 TextBox 외부를 클릭하는 것보다 구성 요소의 초점이 맞지 않아서 입력 할 수 없어야합니다.외부 컴포넌트를 클릭하여 초점 맞추기

(코멘트에 그렇게 말하십시오 그렇지 않으면 내가, 내 설명이 분명하다 희망) 당신은 WindowPreviewMouseDown 이벤트에 부착하여이 기능을 달성 할 수

+0

그래서 문제는 어디에 있습니까? – Andy

답변

0

. 또한 순서대로 포커스를 잃는 다른 포커스 가능 컨트롤 (예 : _dummyControl이라는 텍스트 상자)이 있어야 포커스를 이동할 수 있습니다.

public MainWindow() 
{ 
    this.PreviewMouseDown += PreviewMouseDownEventHandler; 
} 
private void PreviewMouseDownEventHandler(object sender, MouseButtonEventArgs e) 
{ 
    //check conditions here... 
    _dummyControl.Focus(); 
} 

대한 추가 정보 :

PreviewMouseDown 이벤트는 MouseDown 또는 클릭 이벤트가 발생하기 직전에 발생합니다. 이 이벤트에 연결하면 코드가 사용자가 창을 클릭 할 때이를 알 수 있고 그 시점에 포커스를 숨겨진 컨트롤로 이동하여 포커스가없는 기능을 시뮬레이션해야합니다.

+0

이 솔루션을 더 자세히 설명 할 수 있습니까? 이벤트 처리기에 대해 많이 알지 못해서 ... 실제로 솔루션이 내장되기를 바랬습니다. –

+0

무슨 뜻인지 모르겠다. 나는 당신에게 실제 코드를 주었다. 어쨌든, 나는 더 많은 정보를 추가했다. – Bijan