2010-07-30 40 views
1

我目前正在用c#wpf用自定義窗口編寫程序。所以,因爲必須有一個自定義最大化狀態,我想要在沒有任務欄的情況下獲取屏幕的高度和寬度。 systemparamters.workarea屬性似乎是要走的路,但是它賦予我的價值觀是錯誤的。此外,將此設置爲新的Maxheight和Maxwidth會設置某種邊距,以便在應用程序的右側和底部有一個小間隙,即使我明確指出this.left = 0且this.left = 0。system.workareaproperty給出錯誤的值

有人有過這方面的經驗嗎?

更新:請求的代碼(當用戶點擊最大化按鈕時運行(本質上是在最大化和正常之間切換))在我的設計器窗口中沒有邊距或最大高度/寬度,一切都設置爲自動。

private void MaxThis(object sender, System.Windows.RoutedEventArgs e) 
    { if (WindowState == WindowState.Maximized){ 
     WindowState = WindowState.Normal; 
     } 

    else { 
     this.MaxWidth = SystemParameters.WorkArea.Width; 
     this.MaxHeight = SystemParameters.WorkArea.Height;  
     this.WindowState = WindowState.Maximized; 

    this.Top = 0; 
    this.Left = 0; 
    } 
    } 

更新:我在Blend做了一個新的空白WPF應用程序,添加一個按鈕和鏈接此代碼它。右邊和底部有相同的邊距...

+0

重現問題的郵政編碼。 – 2010-07-31 00:25:53

回答

2

您看到的額外邊框和間距是調整大小的框架。擺脫它的最簡單方法是設置

ResizeMode = ResizeMode.NoResize; 
+0

謝謝!所以我永遠不應該想要一個resizegrip我會定製一個? – internetmw 2010-07-31 11:14:39

+0

是的,這會讓您更好地控制尺寸和位置。如果您想允許從最大化狀態調整大小,您可以更改窗口本身的ControlTemplate以添加您自己的不需要額外間距的夾點。 – 2010-07-31 18:36:54