这个效果类似于Windows Phone自带的那个相册 用汉字来形容就是“一张图片在某个区域内来回移动”。

这个效果在很多地方看过 例如“网易云阅读”“鲜果联播” 图片不再是那种静态的了,非常cool。

coding4fun 上有源代码大致的原理就是一个Clip+一个位移动画。

想一想就是一个Panel容器里面嵌套一个图片然后用位移动画移动它既可,于是有了如下代码

 <Canvas Height="375" Width="500"><Image x:Name="dream" Stretch="UniformToFill" Source="images/dream.jpg"></Image>
</Canvas>

很不幸。。会出现一种问题,就是图片会把Canvas撑大,原本WPF有一个“ClipToBound”的属性可以把内部元素超出的部分裁剪掉,但是貌似Windows Store App xaml方式的布局没有提供这个属性。coding4fun 上实现了这个效果他写了个依赖属性的东西 超级好用。在他的“Coding4Fun.Toolkit.Controls.Binding.FrameworkElementBinding"里面 原理就是用了Clip 然后是RectangleGeometry,那么..就有了下面的代码

 <Canvas Height="375" Width="500"><Canvas.Clip><RectangleGeometry Rect="0 0 500 375" /></Canvas.Clip><Image x:Name="dream" Stretch="UniformToFill" Source="images/dream.jpg"><Image.RenderTransform><CompositeTransform  /></Image.RenderTransform></Image></Canvas>

然后就是一个动画了计算当前图片显示的高度和宽带 得到需要做的位移值,为了响应动画添加一个事件触发器 就在Grid Load的时候启动这个动画

   <Grid.Triggers><EventTrigger RoutedEvent="Grid.Loaded" ><BeginStoryboard><StoryboardAutoReverse="True" RepeatBehavior="Forever"><DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)"Storyboard.TargetName="dream"><SplineDoubleKeyFrame KeyTime="0:0:1"/><SplineDoubleKeyFrame KeyTime="0:0:16" Value="-263"/><SplineDoubleKeyFrame KeyTime="0:0:17" Value="-263" /></DoubleAnimationUsingKeyFrames></Storyboard></BeginStoryboard><BeginStoryboard><StoryboardAutoReverse="True" RepeatBehavior="Forever"><DoubleAnimationUsingKeyFrames BeginTime="0:0:17"Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)"Storyboard.TargetName="dream"><SplineDoubleKeyFrame KeyTime="0:0:1"/><SplineDoubleKeyFrame KeyTime="0:0:16" Value="-350"/><SplineDoubleKeyFrame KeyTime="0:0:17" Value="-350" /></DoubleAnimationUsingKeyFrames></Storyboard></BeginStoryboard></EventTrigger></Grid.Triggers>

wow~上面的动画实现的时 在1-16秒内 水平和垂直同时位移,然后停顿一秒后移回去,不断的这一重复下去。

目测就是这样了, 这个可以用代码来实现的感兴趣的用代码封装下 否则每次都要要写个触发器来启动这个动画感觉“味道很坏"的..

然后在弄个全屏的这种效果 全屏的简单至少不用加Clip

 <StackPanel Margin="0 -300 0 0"><Image x:Name="dream" Stretch="UniformToFill" Source="images/desktop.jpg"><Image.RenderTransform><CompositeTransform  /></Image.RenderTransform></Image></StackPanel>

动画效果和上面的基本类似

 <Grid.Triggers><EventTrigger RoutedEvent="Grid.Loaded" ><BeginStoryboard><StoryboardAutoReverse="True" RepeatBehavior="Forever"><DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)"Storyboard.TargetName="dream"><SplineDoubleKeyFrame KeyTime="0:0:1"/><SplineDoubleKeyFrame KeyTime="0:0:5" Value="300"/><SplineDoubleKeyFrame KeyTime="0:0:6" Value="300" /></DoubleAnimationUsingKeyFrames></Storyboard></BeginStoryboard></EventTrigger></Grid.Triggers>

但是要注意 图片”drem“ 要给它的高度多增加300否则就会出现一种”图片移出屏幕“的现象

用代码或者Bind 把drem的宽度增加300

dream.Height = Window.Current.Bounds.Height + 300;

ok 效果就是这样了

然后附上

Windows Phone交流群"157153754"

Windows8交流群 "243302359"

Happy Coding!

转载于:https://www.cnblogs.com/beyondblog/archive/2013/03/30/2990806.html

Windows8Windows Phone 做一个图片效果相关推荐

  1. 媳妇儿喜欢玩某音中的动漫特效,那我就用python做一个图片转化软件。

    最近某音上的动漫特效特别火,很多人都玩着动漫肖像,我媳妇儿也不例外.看着她这么喜欢这个特效,我决定做一个图片处理工具,这样媳妇儿的动漫头像就有着落了. 编码 为了快速实现我们的目标,我们就不自己写图片 ...

  2. 卡通化图片python实现代码_媳妇儿喜欢玩某音中的动漫特效,那我就用python做一个图片转化软件。...

    ​    最近某音上的动漫特效特别火,很多人都玩着动漫肖像,我媳妇儿也不例外.看着她这么喜欢这个特效,我决定做一个图片处理工具,这样媳妇儿的动漫头像就有着落了. 编码 为了快速实现我们的目标,我们就不 ...

  3. 【4003】通过html+css做一个图片列表的静态页面。

    [4003]通过html+css做一个图片列表的静态页面. 学习目标: [ 1]学习前端第三天掌握 html与css(基础选择器,有.无序列表相关)入门知识,梳理今天的学习知识点: [ 2]通过已学知 ...

  4. 简单的做一个图片上传预览(web前端)

    在做web项目很多的时候图片都是避免不了的,所以操作图片就成了一个相对比较棘手的问题,其实也不是说很麻烦,只是说上传然后直接预览的过程很恶心,今天简单的做一个处理. 效果预览: 代码: <!DO ...

  5. 【PR】如何做一个图片动画出场

    先往轨道拉一个图片 对图片参数进行修改 把图片选择,然后点击运动.在把图片上的圈进行调动即可 设置图片出场动画 先把图片放置视频的开头 然后选择位置,这个时候发现图片没了 那么我们在选中一次运动,这个 ...

  6. 用python做一个图片验证码

    看一下做出来的验证码长啥样 验证码分析 1. 有很多点 2. 有很多线条 3. 有字母,有数字 需要用到的模块: 1. random 2. Pillow  (python3中使用pillow) 安装p ...

  7. Java做一个动画效果音量调节_设计与实现一个 ISoundable 接口,该接口具有发声功能、还能调节音量大小...

    [java]代码库package experiment6; public interface ISoundable { public void increaseVolume(); public voi ...

  8. js:使用canvas做一个图片标注功能

    canvas相关库的选择 名称 star(2021.3) 文档 备注 fabricjs 18.2k http://fabricjs.com/ -------- konva 6k https://kon ...

  9. 使用 JavaScript 和 CSS 做一个图片转 PDF 的转换器

最新文章

  1. BFS之三(单向bfs和康托压缩)
  2. websocket传输canvas图像数据给C++服务端opencv图像实现web在线实时图像处理
  3. Pytorch:使用Alexnet网络实现CIFAR10分类
  4. QT的QScopedPointer类的使用
  5. AMS磁编码器:AS5048与AS5047区别,伺服电机闭环系统位置反馈
  6. python测试udp端口_zabbix上使用外部检查的方式监测公网tcp/udp端口开放情况
  7. echo -e “\033[字背景颜色 字体颜色m字符串\033[0m“解释
  8. 对于配置环境变量后的过程~
  9. poj 2356 Find a multiple
  10. ns3安装 + eclipse
  11. 计算机操作系统-整理
  12. 关于大一c语言期中考试总结
  13. 2022双十一投影仪选购清单,知名博主分享2022投影仪推荐名单
  14. 面试官这样,面试就有戏了!
  15. 驱动编程简单教程——PTC512(ADC芯片驱动)为例
  16. python名片系统代码练习并存储到数据库中
  17. java设备未就绪_java.io.IOException: 设备未就绪
  18. 柏楚系统和倍福系统哪个好_西门子和倍福系统优劣对比-专业自动化论坛-中国工控网论坛...
  19. NV终于出必杀!怪兽显卡GTX TITAN首测
  20. shp文件的解析方法

热门文章

  1. 26 fps 的视频超分辨率模型 DAP!在线输出720P视频
  2. CVPR 2021 3D视觉相关最新进展分享
  3. 3000类别,20万个标注,山师等推出大规模Logo检测数据集:LogoDet-3K
  4. 【CV101大会录播】人流密度/河道污染/安全帽识别获奖算法
  5. ICCV 2019 | 微软开源无监督学习的医学图像配准方法:递归级联网络
  6. 格灵深瞳发起 AI · 爱 算法 在线编程挑战赛
  7. redis java连接出错_redis连接错误与spring boot
  8. Python精简入门级学习(二)
  9. 理解ROS Navigation Stack,看完这篇你就知道啦!
  10. 大学生学图像处理计算机要求,重点大学计算机教材:数字图像处理