2011-10-17 3 views
4

.NET 3.5で開発されたWPFプロジェクトがあり、新しい機能を利用するために.NET 4に変換しましたが、メインウィンドウのtop & left私たちは、次のコードを実行した場合、それをWindow.Topは.NET 4から.NET 3.5への異なる結果を表示します

(私たちはアプリを起動したとき)には、0を読み取りますが、:topは4.0で、-7を読み取ります。プロパティは、彼らが3.5で、.NET 3.5

の中にいたよりも、異なる結果を得ます以前のように正常に読み取られます:

(this as Window).WindowState = System.Windows.WindowState.Normal; 
(this as Window).WindowState = System.Windows.WindowState.Maximized; 

答えて

1

さて、あなたは最大化されたウィンドウを意味すると思います。ウィンドウを最大化すると、ボーダーは画面の通常の範囲外になるため、TopとLeftは負の値を持ちます。 .NET 4ではこれを最大にしてもゼロに変更したが、.NET 3.5では変更しなかった可能性があります。

- SeriTools

+0

私たちがコードを実行した後、述べたように: (このウィンドウとして).WindowState = System.Windows.WindowState.Normal。 (これはウィンドウとして).WindowState = System.Windows.WindowState.Maximized; ウィンドウが最大化され、上のコードが再度実行されます。.NET 3.5 の場合と同じですが、上記のコードを実行してもゼロを保持し続けます。 – simo

+0

さて、これらの値を取得するためにWinAPIを使用することをお勧めします。ウィンドウが最大化されている場合は常に境界線の太さ(この場合は-7)が返されます。 ;) – seri

関連する問題