所以我有一个编码问题需要帮助,简而言之,我不知道我在做什么。仅供引用,我没有将工具包与手势监听器一起使用。
我有一个包含 3 个全景项目的全景页面:BigImageCenter、BigImageLeft、BigImageRight。
在我的应用程序中有一堆图像,这些图像将随应用程序一起下载。这个全景页面的目标是在页面底部设置一个滚动查看器,以小缩略图显示应用程序附带的整个图像列表,页面顶部是全景项目,如果你向左或向右滑动图像有条不紊地在列表中前进(如果向左滑动则返回)。
此外,如果您点击底部滚动查看器中的其中一个缩略图,它将用该缩略图图像替换当前的全景图像。如果您在全景页面上向左或向右滑动,您将在数组中获得该缩略图的 -1 或 +1。
您在页面上看到的第一张图片是 BigImageCenter。
我不必使用 3 个全景图项目,我可能只用 1 个就可以了。但是,当我只用 1 个进行测试时,在我通过单击缩略图并向左或向右滑动全景图来更改图像之后,即将加载到屏幕上的下一张图片在更改之前始终是同一张图片(有道理,因为我没有编写任何数组来动态更改下一张图片等)。
但是我不知道如何执行以下任何操作:
1) 创建一个数组,其中全景项目中的第一张图像设置为 X。 2) 告诉用户是否向左或向右轻弹到数组中的 -1 或 +1 3) 设置点击时用缩略图替换当前全景图,然后将数组丢到那个缩略图位置。
这是全景图控件和缩略图滚动查看器的 XAML:
<Grid x:Name="ControlPanel" Grid.Row="1" Margin="-8,-22,-49,90">
<controls:Panorama Name="Image_Panorama" Height="auto" Width="auto">
<!--Panorama item one-->
<controls:PanoramaItem>
<Rectangle Height="auto" Width="auto" x:Name="BigImageCenter">
<Rectangle.Fill>
<ImageBrush ImageSource="image030.jpg" />
</Rectangle.Fill>
</Rectangle>
</controls:PanoramaItem>
<controls:PanoramaItem>
<Rectangle Height="auto" Width="auto" x:Name="BigImageLeft">
<Rectangle.Fill>
<ImageBrush ImageSource="pics/image002.jpg" />
</Rectangle.Fill>
</Rectangle>
</controls:PanoramaItem>
<controls:PanoramaItem>
<Rectangle Height="auto" Width="auto" x:Name="BigImageRight">
<Rectangle.Fill>
<ImageBrush ImageSource="pics/image003.jpg" />
</Rectangle.Fill>
</Rectangle>
</controls:PanoramaItem>
</controls:Panorama>
</Grid>
<Grid x:Name="MiniPicturePanel" Grid.Row="1" Margin="0,390,0,0">
<ScrollViewer x:Name="svSmall" Grid.Row="1" HorizontalContentAlignment="Center">
<StackPanel x:Name="smallImages" Orientation="Horizontal" VerticalAlignment="Bottom" Margin="330,0,0,0">
<Rectangle Height="70" Width="110" Margin="0,0,30,0" StrokeThickness="3" MouseLeftButtonUp="smallImage_Tap" Stroke="#FF004080" x:Name="Bat1">
<Rectangle.Fill>
<ImageBrush ImageSource="image030.jpg" />
</Rectangle.Fill>
</Rectangle>
<Rectangle Height="70" Width="110" Margin="0,0,30,0" StrokeThickness="3" MouseLeftButtonUp="smallImage_Tap" Stroke="#FF004080" x:Name="Bat2">
<Rectangle.Fill>
<ImageBrush ImageSource="pics\image002.jpg" />
</Rectangle.Fill>
</Rectangle>
....等等
现在我完成了一些事情,但不是我想要的方式:
MouseLeftButtonUp="smallImage_Tap"是一个函数,它将“BigImageCenter”的全景项目更改为矩形的当前 image.fill。我只是无法对其进行编码以更改 View 中的当前数据透视项。我需要帮助。
private void smallImage_Tap(object sender, RoutedEventArgs e) {
BigImageCenter.Fill = (sender as Rectangle).Fill;
如果您想知道我为什么使用矩形,这是我在点击较小的缩略图时使用隐藏代码更改图像的最简单方法。
这几乎就是我的代码隐藏。我实际上是在从头开始进行这种动态编码,需要一些帮助来实现这个梦想。
PS:我还需要知道与图像关联的数组编号,以便我可以允许用户“收藏”它并将其放在另一个页面中。
最佳答案
我认为这会给您带来认证问题,即使您确实让它工作(假设我理解正确。)这是对全景图的非标准使用。
我认为更好的解决方案是使用手势的完全自定义控件...这并不难做到,而且您可以完全控制演示文稿。这样做比破解全景图来做你想做的事要容易得多。
祝你好运, 约翰
关于c# - 全景图和图像阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6246386/