2014-08-31 44 views
0

我想同時有SizeToContent =「WidthAndHeight」和WindowState =「Maximized」。我試圖在加載過程中以及在MainWindow的構造函數中更改窗口的狀態,但沒有運氣。windowState和SizeToContent不能同時工作

<Window x:Name="MainWindowMy" x:Class="ManyTabControls.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:sys="clr-namespace:System;assembly=mscorlib" 
    Title="Pressure Vessel Design" WindowState="Maximized" SizeToContent="WidthAndHeight" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Auto" Loaded="MainWindowMy_Loaded" > 
<Window.Resources> 

我在設計查看器中有很多選項卡的TabControl,選項卡向下流入不同的行。而當我改變TabControl的寬度,使得這些標籤在同一行中時,它們就超出了MainWindow的邊界。如果我設置Mainwindow的寬度,那麼MainWindow將具有恆定的寬度。這意味着如果監視器的大小變小,那麼大於屏幕的MainWindow部分將不會顯示。我希望我明確自己。

+4

您如何期待'Maximised'和'SizeToContent'一起工作?他們是矛盾的。你期望發生什麼? – dkozl 2014-08-31 11:29:29

+0

然後會發生什麼? 「沒有運氣」不是一個好問題陳述。 – 2014-08-31 11:45:05

+0

當窗口加載時,它不會最大化。爲什麼它不能具有內容的大小並在加載時獲得最大化。正如你可以看到這兩個屬性是共存的!一個人如何能夠優先於另一個呢? – Bopy 2014-08-31 11:49:49

回答

0

謝謝尤金,我明白了。我已經嘗試在運行時更改我的MainWindow的狀態,但它沒有解決(MainWindow未佔用全屏)。

正如Eugene所說,原因是這些屬性相互衝突(SizeToContent獲得優先權),所以我必須關閉一個以便能夠打開另一個屬性。因此,要解決的問題:

private void MainWindowMy_Loaded(object sender, RoutedEventArgs e) 
{ 
    this.SizeToContent = System.Windows.SizeToContent.Manual; 
    this.WindowState = System.Windows.WindowState.Maximized; 
} 

它沒有這樣做的最優雅的方式,但它服務的宗旨,爲現在。但是,如果有人能夠想出更優雅的解決方案,將不勝感激。

相關問題