我正在尝试为Windows Phone 8创建一个 'PanoramaControl' ,因为它显示了一个场景幻灯片,每个场景的大小都是ScreenWidth。我曾尝试使用微软的全景控制,但出于以下几个原因我放弃了这种方法:
经过一番研究后,我决定使用ScrollViewer
和ListBox
自行实施控件,结果在这里:https://www.youtube.com/watch?v=2RcqDMKn0EY(两者的动作非常平滑设备和模拟器,但由于屏幕截图,链接有点不连贯)
然而,我所缺少的是场景一对一的弹性边缘弹性功能。 我曾经尝试过玩操纵事件,但是我没有得到那种平滑的弹性惯性运动,我想在获得挫折感或更糟糕之前要求提出一个优雅实施的建议..黑客攻击和妥协......
因此,非常感谢帮助或建议(甚至针对不同的方法)! :)
<Grid x:Name="layoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height="8*"/>
<RowDefinition Height="10*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="14*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<ScrollViewer Grid.Row="0" Grid.RowSpan="3" Grid.Column="0" Grid.ColumnSpan="3" Name="scrollViewer" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Auto">
<ListBox Name="listBoxScenes" ItemsSource="{Binding Scenes}" ScrollViewer.VerticalScrollBarVisibility ="Disabled" SelectedItem="{Binding SelectedScene, Mode=TwoWay}">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Black" BorderThickness="0">
<Grid Width="{Binding SceneWidth}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!--Contains the item name and the date-->
<StackPanel Grid.Row="0">
<TextBlock Text="{Binding ItemName, FallbackValue=Item1}" Margin="9,30,0,0" Style="{StaticResource PhoneTextTitle1Style}" HorizontalAlignment="Center"/>
<TextBlock Text="{Binding CurrentTime, StringFormat=D, FallbackValue='Sunday, May 11, 2014'}" Style="{StaticResource PhoneTextNormalStyle}" HorizontalAlignment="Right"/>
</StackPanel>
</Grid>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
</Grid>