我有一個WPF TabControl,包含兩個不同寬度和高度的TabItems。奇怪的是,當我在項目之間切換時,TabControl的大小被調整爲緊密匹配選定的選項卡項目。例如,如果我點擊較小的TabITem,TabControl會變小,如果我選擇較大的一個,它會變得更大。TabControl總是調整大小到選定的選項卡項目?
我想這會看起來但從用戶的角度傻了,這不正常標籤GUI的情況下,如Windows性能。是否可以設置寬度和高度以適合最大的項目?我想嘗試避免設定一個恆定值
我有一個WPF TabControl,包含兩個不同寬度和高度的TabItems。奇怪的是,當我在項目之間切換時,TabControl的大小被調整爲緊密匹配選定的選項卡項目。例如,如果我點擊較小的TabITem,TabControl會變小,如果我選擇較大的一個,它會變得更大。TabControl總是調整大小到選定的選項卡項目?
我想這會看起來但從用戶的角度傻了,這不正常標籤GUI的情況下,如Windows性能。是否可以設置寬度和高度以適合最大的項目?我想嘗試避免設定一個恆定值
好吧,如果你不希望有一個固定的大小,我看到另一個選項,但這個不便宜在性能方面。 你需要知道的是第二個標籤需要的acutal寬度和高度。這意味着您可以將TabControl的高度和寬度綁定到較大項目的DesiredSize以及一些額外的空間。 但作爲第二個項目可能不會已經測量(檢查IsMeasureValid屬性),那麼你需要調用UpdateLayout請其做爲控制整個布點。
但總的來說,我真的不會推薦你去那條路,因爲玩佈局通常是痛苦的....。 我知道這不是你要求的,而是來自經驗 - >不要這樣做。
爲什麼真的不給出一個固定的大小,並添加scrollviewers?或者我們是一個dockpanel並將所有的東西都放置在某個地方,然後給tabcontrol留下剩餘的空間,這樣它總會填滿你的窗口。
心連心 馬丁
你最好有相對固定窗口的大小一個TabControl的大小,讓根據TabControl的大小調整大小的TabItems。
編輯:
確保包含TabControl
的行或列不是自動大小。如果您的代碼如下所示,您的TabControl
將根據活動的TabItem
調整大小。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height=".20*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height=".20*"/>
</Grid.RowDefinitions>
<TabControl Grid.Row="1" BorderBrush="Red" BorderThickness="1">
<TabItem Header="Blue">
<Rectangle Width="200" Height="200" Fill="Blue"></Rectangle>
</TabItem>
<TabItem Header="Black">
<Rectangle Width="100" Height="100" Fill="Black"></Rectangle>
</TabItem>
</TabControl>
</Grid>
如果你在上面的代碼更改行<RowDefinition Height="Auto"/>
到<RowDefinition Height="*"/>
它會解決這個問題。
你也可以分享代碼,我們可以看看它。
如果我的屏幕太小會發生什麼?拉伸tabcontrol並將scrollviewer作爲第一個孩子不是更好嗎? – Silvermind 2012-03-22 08:43:48