2011-12-07 72 views
1

我有一個customUserControl託管在Silverlight應用程序中的TabControl的TabItem中。此TabControl是具有分隔符的大型UI容器的一部分。如何降低tabcontrol中scrollviewer的高度?

我的要求是調整customUserControl的大小,當我在UI中使用分隔符調整TabControl的大小。但是usercontrol不應該低於500px的最小高度;如果TabControl低於此高度,則會出現滾動。

我已經做了以下這個

<WindowsControls:TabItem Header="Live Update" 
           x:Name="tabLiveUpdate" 
           Margin="3,0,0,0"> 
      <Grid> 
       <Grid.RowDefinitions> 
        <RowDefinition /> 
       </Grid.RowDefinitions> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition /> 
       </Grid.ColumnDefinitions> 
       <ScrollViewer BorderThickness="0" 
           Padding="1" 
           VerticalScrollBarVisibility="Auto" 
           Width="Auto"> 
         <MyControls:customUserControl 
             DataContext="{Binding Path=LiveUpdateVm}" 
             MinHeight="500"/> 
        </ScrollViewer> 
      </Grid> 
     </WindowsControls:TabItem> 

它顯示了一個滾動條,當應用程序加載瞭如的TabControl的啓動寬度小於500像素。 當我使用分割器將TabControl的大小增加到500px以上(例如,高達700px)時,usercontrol也會增加它的大小。並滾動消失

到此爲止,這是我期望的良好行爲。

問題是當我縮小TabControl回到當前(700)和最小值(500)之間的某個地方,比如600px,它不縮小usercontrol。相反,它表明,即使有600預期行爲的高度現在是一個滾動條顯示滾動條僅在尺寸達到低於500個

感謝

回答

0

要麼限制Stackpanel的大小,或用Grid替換它。

<WindowsControls:TabItem Header="Live Update" 
           x:Name="tabLiveUpdate" 
           Margin="3,0,0,0"> 
      <Grid horizontalalignment="stretch" verticalalignment="stretch"> 

       <ScrollViewer BorderThickness="0" 
           Padding="1" 
           VerticalScrollBarVisibility="Auto" 
           horizontalalignment="stretch" verticalalignment="stretch"> 

         <MyControls:customUserControl 
             DataContext="{Binding Path=LiveUpdateVm}" 
             MinHeight="500" 
             horizontalalignment="stretch" verticalalignment="stretch"/> 
        </ScrollViewer> 
      </Grid> 
     </WindowsControls:TabItem> 
+0

正如你所看到的問題,我嘗試使用網格,但它不起作用。 – Maheep