我正在寻找适用于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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6426 次 |
| 最近记录: |