如何在tabcontrol中降低scrollviewer的高度?

时间:2011-12-07 08:23:17

标签: .net wpf silverlight xaml layout

我有一个customUserControl,它托管在silverlight应用程序的TabContem的TabItem中。此TabControl是具有分割器的大UI容器的一部分。

我的要求是在UI中使用拆分器调整TabControl的大小时调整customUserControl的大小。但是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的启动宽度小于500px。 当我使用分割器将TabControl的大小增加到500px以上(例如高达700px)时,用户控件也会增加它的大小。滚动消失

到目前为止,这是我所期待的良好行为。

问题是当我将TabControl缩小到当前(700)和最小值(500)之间的某个位置时,比如600px,它不会缩小用户控件的大小。而它现在显示一个滚动条,即使高度为600.预期的行为是仅在尺寸达到500以下时显示滚动条

由于

1 个答案:

答案 0 :(得分: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>