2016-12-13 1 views
0

TransformPattern.Resize 또는 TransformPattern.Move를 호출하면 창이 사라집니다. 여전히 윈도우의 AutomationElement와 상호 작용할 수 있지만 더 이상 화면에서 볼 수는 없습니다. AutomationElement는 변경된 내용도 반영합니다.UIAutomation - TransformPattern.Resize 및 Move 창이 사라집니다.

Inspect를 사용하면 동일한 너비/높이/x/y 값이 크기 조정/잘 이동합니다 (즉, 창이 사라지지 않음).

내 코드 :

TransformPattern pattern = (TransformPattern)element.GetCurrentPattern(TransformPattern.Pattern); 
if (pattern.Current.CanResize) 
{ 
    pattern.Resize(700, 700); 
} 

(윈도우의 원래 크기는 (792, 800)이다) 내가 잘못 뭐하는 거지?

답변

0

우리 팀은 Windows에 변형 패턴 메서드를 구현할 때 이와 동일한 문제가 발생했습니다.

Microsoft 측에서이 문제점을 자세히 설명하는 문서화 된 버그를 찾을 수 없습니다.

두 가지 잠재적 인 문제를 해결하십시오.

1) P/Invoke와 SetWindowPos을 사용하면 본질적으로 가짜이지만 동일한 결과를 얻을 수 있습니다.

2) P/Invoke 호출을 사용하여 SetForegroundWindowShowWindow을 통해 창에 다시 포커스를 가져옵니다.

이 두 가지 옵션 중 어느 것도 최적은 아니지만 문제가 해결되어 소비자가 P/Invoke 호출과 관련된 래퍼로 창을 이동하고 크기를 조정할 수 있습니다.

그것은 (I 제휴 파트너 아니에요) TestStack.White 개발자들 같은 문제가 발생했음을 주목할 가치 :이 도움이 https://github.com/TestStack/White/issues/205

희망을!

관련 문제