图像/图片库,如内置WP7

问题描述

| 我正在寻找适用于Windows Phone 7的照片库。外观和工作方式与内置照片查看器相同(使用轻拂操作滑动照片,使用捏合调整大小并拖动)。轻拂图像时,您可以看到它滑动到下一张图像...并将列表对齐到该图像。 我已经为图像建立了调整大小和拖动功能。我只是不知道如何创建实际的照片滑块。 谁能指出我正确的方向? 我尝试过的事情: 枢轴查看器(由于它会干扰图像的拖动功能,因此无法禁用枢轴查看器的触摸,因此无法使用) 普通列表框(找不到如何捕捉到当前图像) 提前致谢     

解决方法

        实际上,我已经完全按照您在我的一个应用中所说的实现了, 您需要使用Silverlight Control TOolkit的手势侦听器来捕获触摸时的“拖动”和“捏”。 为您的图像定义一个CompositeTransformation并设置其缩放比例(按捏)和偏移(拖动)。 显然,当图像没有缩放时,拖动可以触发转到下一张图像。 为了使它更平滑,您可能需要在页面资源上定义一个情节提要使用(而不只是设置“偏移”) 我希望它可以帮助/ 拖动处理程序的伪代码可获得滑块效果:
<Canvas>
    <Image x:Name=\"imgImage\" Source=\"{Binding ...}\" Width=\"...\" Height=\"...\">
        <Image.RenderTransform>
            <CompositeTransform x:Name=\"imgImageTranslate\" />
        </Image.RenderTransform>
    </Image>
</Canvas>

    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;
    }
    ,        使用水平方向的ScrollViewer怎么样?当然,您将必须手动检测用户操作并实施正确的响应(使用几个正确设置的Storyboard)。 甚至更好的方法是编写自己的查看图像的自定义控件。一个很好的起点是这里-Silverlight中的CoverFlow控件。一旦知道如何将图像集合绑定到自定义控件,您需要做的就是处理当前选定项目上的用户手势。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...