2011-10-17 38 views
4

我們有一個使用.NET 3.5開發的WPF項目,我們已將其轉換爲.NET 4,以受益於新功能,但是,我們的主窗口的top & left性能得到比他們在.NET 3.5Window.Top在.NET 4中讀取不同的結果到.NET 3.5

在3.5不同的結果:top讀取-7,在4.0:讀取0(當我們啓動應用程序)

但是,如果我們運行下面的代碼,它將像以前一樣正常讀取:

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

回答

1

嗯,我認爲你的意思是一個最大化的窗口。如果您最大化一個窗口,邊框將超出屏幕的正常範圍,因此頂部和左側具有負值。可能是因爲.NET 4將其改爲零,即使最大化,而.NET 3.5也不會。

- SeriTools

+0

如我指出,當我們執行的代碼: (此作爲窗口).WindowState = System.Windows.WindowState.Normal; (this as Window).WindowState = System.Windows.WindowState.Maximized; 該窗口將被最大化,然後,頂部再次讀取-7就像它在.NET 3.5 如果你是對的,那麼,即使執行上面的代碼後,它仍然會保持零讀取! – simo

+0

那麼,我建議你使用WinAPI獲取這些值。在最大化窗口的情況下,它將始終返回邊界厚度(在本例中爲-7)。 ;) – seri