我有一个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以下时显示滚动条
由于
答案 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>