2016-12-13 3 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

私たちのチームは、ウィンドウにTransformパターンメソッドを実装するときに同じ問題が発生しました。

マイクロソフト側でこの問題を詳しく説明している文書化されたバグは見つかりませんでした。

2つの潜在的な回避策。

1)P/InvokeとSetWindowPosを使用すると、本質的に偽装できますが、同じ結果が得られます。

2)P/Invoke呼び出しを使用して、SetForegroundWindowShowWindowを使用してウィンドウにフォーカスを戻します。

どちらのオプションも最適ではありませんが、私たちの問題を解決し、消費者がP/Invoke呼び出しの周りにいくつかのラッパーでウィンドウを移動したりサイズ変更したりすることを許可しました。

また、(私はと提携していないよ)TestStack.Whiteの開発者が同じ問題に遭遇したことは注目に値します:https://github.com/TestStack/White/issues/205

は、この情報がお役に立てば幸い!

関連する問題