Ho una semplice casella di riepilogo con più elementi che si adattano allo schermo. Se si scorre fino all'ultima voce, questa viene visualizzata ma poi torna indietro sullo schermo - Non posso lasciarlo in vista. Dopo un'ora di utilizzo di Google sembra essere un problema noto nelle prime versioni di Listbox, ma sembra essere il caso negli ultimi strumenti. Sembra anche che ci sia un problema con fixed heights e virtualization, ma setting the height at item level o livello casella di riepilogo non fa alcuna differenza. Vedo che la Listbox nel modello di app di WindowsPhoneDataBound funziona bene con lo scorrimento e senza altezze.Casella di riepilogo di Wp7 Scorrimento in PivotItem - Impossibile rimanere sull'ultimo elemento, l'altezza fissa non aiuta
Vorrei anche una soluzione senza altezze fisse in modo che non richieda un nuovo stato per l'orientamento orizzontale.
Qualche suggerimento, per favore?
La mia casella di riepilogo è in un UserControl che si trova in un PivotItem:
<controls:PivotItem x:Name="pivotItemSetup" Header="setup">
<local:listBoxBlindsControl Margin="0,0,-12,0"/>
</controls:PivotItem>
e il controllo utente:
<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>
qualche informazione in più: ho copiato e incollato il codice XAML esatta dal WindowsPhoneDataBoundApp (che funziona) nel mio UserControl in modo che appare come segue:
<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>
e non funziona ... quindi ha qualcosa a che fare con il PivotItem? Aggiornamento: Ho tolto questo codice dal PivotItem e funziona bene .. quindi qualche idea su come farlo funzionare in un pivotitem?
Se codice l'altezza, risolve il mio problema, che è molto simile al tuo. Ho appena usato Height = 430 nella xaml nel mio controllo utente derivato da una listbox. – swinefeaster