【问题标题】:Making a control to slide images one at a time along a collection, Windows Phone 7制作控件以沿集合一次滑动一个图像,Windows Phone 7
【发布时间】:2011-08-05 04:04:52
【问题描述】:

这似乎是一个简单的答案,但我需要一些帮助来解决这个问题。

我有一个列表框,显示我网站上的 RSS 项目,绑定到一个列表。当用户点击一个特定的项目时,它会将他们带到一个只显示该图片的新页面。

我希望能够允许用户向左或向右滑动,并让它加载下一张或上一张图片。

我有附带手势监听器的工具包,并且我已经查看了这个先前提出的问题的代码(代码如下)

<Canvas>
<Image x:Name="imgImage" Source="{Binding ...}" Width="..." Height="...">
    <Image.RenderTransform>
        <CompositeTransform x:Name="imgImageTranslate" />
    </Image.RenderTransform>
</Image>

private void GestureListener_DragCompleted(object sender, DragCompletedGestureEventArgs e)
{
    if (e.Direction == System.Windows.Controls.Orientation.Horizontal)
    {
        var abs = Math.Abs(PANEL_DRAG_HORIZONTAL);
        if (abs > 75)
        {
            if (PANEL_DRAG_HORIZONTAL > 0) // MovePrevious;
            else //MoveNext();

            e.Handled = true;
        }
    }
}


double PANEL_DRAG_HORIZONTAL = 0;
private void GestureListener_DragDelta(object sender, DragDeltaGestureEventArgs e)
{
        if (e.Direction == System.Windows.Controls.Orientation.Horizontal)
        {
            PANEL_DRAG_HORIZONTAL += e.HorizontalChange;

            var baseLeft = -imgImage.Width / 2;
            if (PANEL_DRAG_HORIZONTAL > 75) imgImageTranslate.OffsetX = baseLeft + PANEL_DRAG_HORIZONTAL;
            else if (PANEL_DRAG_HORIZONTAL < -75) imgImageTranslate.OffsetX = baseLeft + PANEL_DRAG_HORIZONTAL;
            else imgImageTranslate.OffsetX = baseLeft;
        }
    }
}

private void GestureListener_DragStarted(object sender, DragStartedGestureEventArgs e)
{
    PANEL_DRAG_HORIZONTAL = 0;
}

我遇到的问题是如何使用数据绑定列表创建 MoveNext() 和 MovePrevious() 函数调用。

我现在的代码从 SelectedItem RSS 列表框中获取根视觉对象,它是 Web 上图像的 URL,并将其作为下一页上的 URL 传递。

但是我如何能够参考左边或右边的下一张图片(沿着列表数组)?

【问题讨论】:

    标签: c# silverlight windows-phone-7 listbox observablecollection


    【解决方案1】:

    您可以“作弊”并使用基于枢轴的页面来做到这一点,就像其他人创建“无限滚动”的枢轴页面一样。

    创建一个没有标题、没有边距的数据透视表来显示您的图像。 让枢轴处理所有滑动。 添加监听器以监视枢轴项目的变化

    但只创建 5 个枢轴项目,并且所选项目发生变化,而是从您的列表/数组中循环。

    这里有更多细节:Endless Pivot Control

    【讨论】:

    • 这是个好主意,我一定会去看看。如果是这种情况,是否允许我不将侦听器添加到工具包?
    • 您将免费获得所有滑动行为。但是,如果您想要缩放/等,那么您将回到原点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多