Rod*_*ney 5 scroll listbox windows-phone-7
我有一个简单的列表框,其中包含的项目多于屏幕上的项目.如果你滚动到它显示的最后一项,但然后从屏幕上退回 - 我不能将它留在视野中.经过一个小时的谷歌搜索后,它似乎是Listbox早期版本中的一个已知问题,但在最新的工具中似乎仍然如此.固定高度和虚拟化似乎也存在问题,但在项目级别或列表框级别设置高度没有任何区别.我看到WindowsPhoneDataBound应用程序模板中的列表框可以正常滚动,没有高度.
我还想要一个没有固定高度的解决方案,因此它不需要横向定向的新状态.
有什么建议吗?
我的列表框位于PivotItem中的usercontrol中:
<controls:PivotItem x:Name="pivotItemSetup" Header="setup">
<local:listBoxBlindsControl Margin="0,0,-12,0"/>
</controls:PivotItem>
Run Code Online (Sandbox Code Playgroud)
和用户控制:
<Grid x:Name="LayoutRoot" Background="Transparent">
<ListBox x:Name="listBoxBlinds" ItemsSource="{Binding BlindSet.Blinds}" SelectionChanged="MainListBox_SelectionChanged" Height="500">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Height="80" Margin="0,0,0,17" Width="103">
<StackPanel Orientation="Horizontal" Visibility="{Binding IsBreak, ConverterParameter=true, Converter={StaticResource boolToVisibility}}" VerticalAlignment="Top" d:LayoutOverrides="Width">
<TextBlock Text="{Binding LevelNumber, ConverterParameter='level \{0\} - ', Converter={StaticResource stringTextConverter}}" TextWrapping="NoWrap" Margin="0" Style="{StaticResource PhoneTextExtraLargeStyle}" d:LayoutOverrides="Width"/>
<TextBlock Text="{Binding SmallBlind, ConverterParameter=\{0\}/, Converter={StaticResource stringTextConverter}}" TextWrapping="NoWrap" Margin="0" Style="{StaticResource PhoneTextExtraLargeStyle}" d:LayoutOverrides="Width"/>
<TextBlock Text="{Binding BigBlind}" TextWrapping="NoWrap" Margin="0" Style="{StaticResource PhoneTextExtraLargeStyle}" d:LayoutOverrides="Width"/>
</StackPanel>
<TextBlock x:Name="txtbreak" Text="break" TextWrapping="NoWrap" Margin="0,0,0,23" Style="{StaticResource PhoneTextExtraLargeStyle}" d:LayoutOverrides="Width, Height" Visibility="{Binding IsBreak, ConverterParameter=false, Converter={StaticResource boolToVisibility}}" Foreground="{StaticResource PhoneAccentBrush}" />
<StackPanel Orientation="Horizontal" Margin="0,0,0,23" VerticalAlignment="Bottom" d:LayoutOverrides="Width">
<TextBlock Text="{Binding MinutesPerBlind, ConverterParameter=\{0\} minutes, Converter={StaticResource stringTextConverter}}" TextWrapping="NoWrap" Margin="0" Style="{StaticResource PhoneTextSubtleStyle}" d:LayoutOverrides="Width"/>
<TextBlock Text="{Binding Ante, ConverterParameter=\, \{0\} ante, Converter={StaticResource stringTextConverter}}" TextWrapping="NoWrap" Margin="0" Style="{StaticResource PhoneTextSubtleStyle}" d:LayoutOverrides="Width" Visibility="{Binding Ante, ConverterParameter=0, Converter={StaticResource valueToVisibility}}"/>
</StackPanel>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
Run Code Online (Sandbox Code Playgroud)
更多信息:我将WindowsPhoneDataBoundApp(可以工作)中的确切XAML复制并粘贴到我的usercontrol中,现在看起来像这样:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<ListBox x:Name="listBoxBlinds" Margin="0,0,-12,0" ItemsSource="{Binding BlindSet.Blinds}" SelectionChanged="MainListBox_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,0,0,17" Width="432">
<TextBlock Text="{Binding LevelNumber}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
<TextBlock Text="{Binding SmallBlind}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
Run Code Online (Sandbox Code Playgroud)
并且它不起作用......所以它与PivotItem有关吗? 更新:我从PivotItem中取出了这个代码并且它工作正常..所以任何想法如何让它在pivotitem中工作?
我需要这个确切的东西,最终只是将列表框的高度绑定到包含它的堆栈面板的实际高度。
所以你可能有
<controls:PivotItem Header="Destinations" Margin="0,0,12,0" Name="pvtItemDestinations">
<StackPanel Name="stkDestinations">
<ListBox Name="lstDestinations"
HorizontalContentAlignment="Stretch"
Height="{Binding ElementName=stkDestinations, Path=ActualHeight, Mode=OneWay}">
<ListBox.ItemTemplate>
...
xaml continues
...
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</controls:PivotItem>
Run Code Online (Sandbox Code Playgroud)
然后,确保将 stackpanel 设置为自动填充它所在的任何空间,然后列表框将调整大小到其 stackpanel 容器的大小,并且滚动逻辑将正确启动。
请注意,这主要适用于您的项目模板最终定义高度可能不同的项目时。如果它们的高度相同,通常不会有问题。
| 归档时间: |
|
| 查看次数: |
3744 次 |
| 最近记录: |