![](/img/trans.png)
[英]Use all available space with ListBox and a StackPanel as ItemsPanelTemplate
[英]Listbox item in pivot control doesn't get all available space
我有一个简单的页面,里面有数据透视控件和列表框,但是我无法使列表框拉伸以获取所有可用空间。
范本:
<phone:PhoneApplicationPage.Resources>
<converter:UserMessageConverter x:Key="MessageUserConverter" />
<DataTemplate x:Key="ItemTemplate">
<StackPanel Margin="0,0,0,30">
<TextBlock Text="{Binding Model.Text}" Style="{StaticResource PhoneTextExtraLargeStyle}" FontSize="21.333" TextWrapping="Wrap" />
<TextBlock Text="{Binding User, Converter={StaticResource MessageUserConverter}}" Margin="12,3,0,0" Style="{StaticResource PhoneTextSubtleStyle}" TextWrapping="Wrap" FontSize="18.667"/>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="WindowsPhone.Application.ViewModel.MessageListViewModel">
<ListBox ItemTemplate="{StaticResource ItemTemplate}" ItemsSource="{Binding Messages}" Background="Aqua">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<ContentPresenter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<wi:Interaction.Triggers>
<wi:EventTrigger EventName="SelectionChanged">
<wi:InvokeCommandAction Command="{Binding MessageSelectedCommand}" CommandParameter="{Binding SelectedItem, ElementName=MessageList}" />
</wi:EventTrigger>
</wi:Interaction.Triggers>
</ListBox>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
枢:
<Grid x:Name="LayoutRoot" Background="Transparent">
<!--Pivot Control-->
<controls:Pivot Title="Messages & Responses" ItemsSource="{Binding Pages}">
<controls:Pivot.ItemTemplate>
<DataTemplate>
<helpers:DataTemplateSelector Content="{Binding}" />
</DataTemplate>
</controls:Pivot.ItemTemplate>
<controls:Pivot.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Title}" />
</DataTemplate>
</controls:Pivot.HeaderTemplate>
</controls:Pivot>
</Grid>
不确定100%,但可以尝试一下
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<ContentPresenter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
注意这一点 ,但是我认为ListBox
扩展了整个父容器,但父容器却没有。 为什么Aqua框位于页面的中心而不是左侧或顶部? 请尝试制作相同的应用程序,但不要使用模板化的Pivot
,也许它将您推向正确的方向,并且您发现问题出在哪里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.