c# - 全景图和图像阵列

标签 c# arrays image windows-phone panoramas

所以我有一个编码问题需要帮助,简而言之,我不知道我在做什么。仅供引用,我没有将工具包与手势监听器一起使用。

我有一个包含 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/

相关文章:

c# - asp.net mvc 2.0如何让页面自动使用https

c# - 如何在 .NET Core 中设置全局环境变量(用户范围或系统范围)

php图像处理帮助或类?

c - 获取 JPEG 冗余数据

c# - System.Security.SecurityException : The source was not found, 但无法搜索部分或所有事件日志。无法访问的日志:安全

c# - 将字符名称(即逗号)转换为实际字符(即,)

java - 如果第一维长度为 0,是否可以检索二维数组的第二维长度?

arrays - golang结构数组转换

arrays - Julia 中的push!() 和append!() 方法的效率如何?

java - android 如何将图像保存在特定文件夹中