사용자 입력 및 표현 아키텍처
디자이너를 만들 때는 사용자 입력과 관련하여 해결해야 하는 몇 가지 문제가 있습니다. 예를 들어 요소 포커스 제어, 마우스 및 키보드 입력 라우팅, 표시기(Adorner) 추가 및 명령 호출 과정에는 모두 사용자 입력을 처리하기 위한 명령 및 중앙 집중식 메커니즘이 있어야 합니다. WPF Designer for Visual Studio에서는 기본 디자인 화면을 나타내는 DesignerView 클래스를 사용하여 이러한 모든 문제를 관리할 수 있습니다.
표시기
표시기는 디자인 뷰에서만 나타나는 시각적 요소로서, 디자인 과정을 돕는 데 사용됩니다. 예를 들어 컨트롤이 선택된 상태에서 컨트롤 주위에 나타나는 크기 조정 핸들이 표시기입니다. DesignerView 클래스에는 Adorners 컬렉션이 들어 있으며 이 컬렉션을 통해 디자인 뷰에서 표시기를 추가하거나 사용할 수 있습니다. 표시기에 대한 자세한 내용은 표시기 아키텍처를 참조하십시오.
입력 라우팅
DesignerView 클래스에서는 사용자 입력을 라우팅하기 위한 중앙 집중화된 표준 메서드를 제공합니다. 입력 과정은 다음과 같은 일반적인 단계로 구성됩니다.
입력 이벤트가 발생합니다.
적중 테스트를 수행합니다.
입력 바인딩을 찾습니다.
명령 바인딩을 실행합니다.
다음 단원에서는 이러한 단계를 보다 자세하게 살펴봅니다.
입력 이벤트 발생
입력 이벤트가 발생하면 해당 이벤트는 DesignerView 클래스에 라우팅되며 이 클래스에서 적중 테스트가 수행됩니다.
적중 테스트 수행
입력 이벤트가 DesignerView 인스턴스에 전달되면 적중 테스트 검사가 수행됩니다. 적중 테스트에서는 표시기 계층과 개체 계층 구조 모두의 시각적 표시를 검사하여 다음 정보를 반환합니다.
마우스가 놓여 있는 표시기
표시기와 연결된 모델 항목
마우스가 놓여 있는 시각적 표시(표시기가 아닌 경우)
시각적 표시와 연결된 모델 항목
입력 바인딩 찾기
적중 테스트 후 DesignerView에서는 입력 이벤트에 맞는 입력 바인딩을 찾습니다. 입력 바인딩을 찾는 데 사용되는 알고리즘은 디자이너의 현재 상태에 따라 달라집니다.
현재 활성 도구에 활성 작업이 있으면 해당 작업의 입력 바인딩에서만 입력 이벤트에 맞는 바인딩이 검색됩니다.
마우스 입력의 경우 DesignerView에서는 적중 테스트된 표시기를 검사하여 입력 이벤트에 맞는 입력 바인딩이 있는 작업을 찾습니다. 캡처가 만들어진 경우 사용되는 표시기는 캡처가 만들어질 때 적중 테스트된 표시기입니다. 적중 테스트된 표시기가 없는 경우 DesignerView에서는 활성 도구에 포함된 작업의 입력 바인딩을 탐색합니다.
키보드 입력의 경우 DesignerView에서는 활성 도구에 포함된 작업의 입력 바인딩을 탐색합니다. 표시기에 대한 키보드 입력 바인딩은 무시됩니다.
참고
마우스 입력의 한정자 키는 무시되지 않습니다. 한정자 키는 마우스 입력과 함께 사용할 수 있습니다.
명령 바인딩 실행
입력 바인딩을 가져온 후에는 해당 바인딩의 명령에 대해 Execute 메서드가 호출됩니다. 그러나 명령은 인터페이스이므로 Execute의 동작은 전적으로 해당 명령의 구현을 따릅니다.