2011-12-19 1 views
1

DataGridCell에서 MouseLeftButtonDownEvent를 발생시키는 다음 코드가 있습니다.DataGridCell의 AutomationPeer를 통한 WPF - MouseDown

DataGridCell dataGridCell = cell as DataGridCell; 
MouseButtonEventArgs someEventArgs = 
    new MouseButtonEventArgs(Mouse.PrimaryDevice, 0, MouseButton.Left); 
someEventArgs.RoutedEvent = DataGridCell.MouseLeftButtonDownEvent; 
dataGridCell.RaiseEvent(someEventArgs); 

잘 작동하고 셀이 선택됩니다. 그러나 지금은 AutomationPeer를 사용하여 동일한 작업을 수행하려고 시도하고 있지만 동일한 작업을 수행 할 수있는 방법을 찾을 수 없었습니다.

AutomationPeers를 사용하여 수행 할 수 있습니까? 그렇다면 어떻게해야합니까?

참고 : Click 이벤트가 아니라 MouseDownEvent를 발생시켜야합니다.

감사

답변

2

짧은 대답은 '노 - 예를 들어

AutomationPeer 클래스는 UIAutomation 클라이언트 있도록 WPF 클래스의 UIAutomation 관련 인터페이스를 구현할 수 있도록하기 위해 존재한다. screenreaders 및 높은 (ish) 수준의 자동화 된 UI 테스트를 사용할 수 있습니다. 이러한 인터페이스는 일반적으로 마우스 또는 키보드 입력보다 상위 수준이며 대신 선택 또는 선택된 상태와 같은 개념을 처리합니다.

일부 테스트 코드에서 UIAutomation의 InvokeProvider.Invoke() 메서드를 사용하여 버튼을 누르면 AutomationPeer가 버튼을 클릭 할 때까지 버튼을 올리므로 버튼을 눌렀을 때와 동일하게됩니다. 그러나 없을 것입니다. 마우스 또는 키보드 입력 관련 - 마우스 이벤트 및 키보드 이벤트 없음.

일반적으로 UIAutomation은 다른 응용 프로그램을 자동화하는 데 사용되며 ... 피어 클래스는 UIAutomation 인프라에 기능을 노출하는 데에만 사용됩니다. 실제로 자신의 코드에서 이러한 클래스를 호출하는 것은 거의 없습니다.

관련 문제