uwp 图片切换动画

简介: 原文:uwp 图片切换动画最近在学习安卓,LOL自定义战绩项目近乎停工,而且腾旭把界面全改了,好烦。刚好学习到安卓中的图片切换动画,我就想在LOL项目中实现一个。首先上百度查看一下,妈的,资料少的可怜。
原文: uwp 图片切换动画

最近在学习安卓,LOL自定义战绩项目近乎停工,而且腾旭把界面全改了,好烦。刚好学习到安卓中的图片切换动画,我就想在LOL项目中实现一个。首先上百度查看一下,妈的,资料少的可怜。

还是自己来吧。自定义控件走一波

效果图

 

新建自定义控件

直接改模板文件 把里面换成一个image source绑定到依赖属性上

<Style TargetType="control:ImageDisplayer">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="control:ImageDisplayer">
                    <Image x:Name="image" Width="40" Height="40" Source="{TemplateBinding ImageSourceNormal}"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

在cs文件里添加字段

//这个定时器用来控制图片切换 
DispatcherTimer time = new DispatcherTimer();
//静态字段 image指模板中的image控件 private static Image image; int i = 1;

添加依赖属性

 #region dependencyProperty
        /// <summary>
        /// 用于显示的Image绑定的Source属性
        /// </summary>
        public ImageSource ImageSourceNormal
        {
            get { return (ImageSource)GetValue(ImageSourceNormalProperty); }
            set { SetValue(ImageSourceNormalProperty, value); }
        }
        public static readonly DependencyProperty ImageSourceNormalProperty = DependencyProperty.Register("ImageSourceNormal", typeof(ImageSource), typeof(ImageDisplayer), new PropertyMetadata(null));
        #endregion

添加属性

 #region property
        /// <summary>
        /// 是否在显示动画
        /// </summary>
        public bool IsShow { get; private set; }
        /// <summary>
        /// List<BitmapImage> Images循环显示的集合
        /// </summary>
        public List<BitmapImage> Images { get; set; }
        #endregion

重写OnApplyTemplate()方法

 /// <summary>
        /// 重用模板时启用
        /// </summary>
        protected override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
//在这里将image指向模板中的iamge控件 image = GetTemplateChild("image") as Image;
//注册time的Tick事件 忽略timer少的那个r 写错了 不想改了 就是这么任性 time.Tick += Time_Tick; time.Interval = TimeSpan.FromMilliseconds(100); }

  在tick事件里处理图片切换

  /// <summary>
        /// 计时器操作
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void Time_Tick(object sender, object e)
        {
            if (image == null||Images==null)
            {
                time.Stop();
                IsShow = false;
                return;
            }
            if (i >= Images.Count)
            {
                i = 1;
            }
            await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
            {
                ImageSourceNormal = Images[i];
            });
            i++;
        }

写控件的使用与停止方法

 /// <summary>
        /// 开始计时器
        /// </summary>
        public void Show()
        {
            time.Start();
            IsShow = true;
        }
        /// <summary>
        /// 停止计时器
        /// </summary>
        public void Stop()
        {
            time.Stop();
        }

现在,这个控件就可以使用了

在页面上添加一个引用

 <local2:ImageDisplayer x:Name="display"/>

当你想显示动画的时候这样做

//这个list就是图片的集合 图片的命名要规范点 像teemo_1.jpg teemo_2.jpg
List<BitmapImage> list = new List<BitmapImage>(); for (int i = 1; i < 9; i++) {
//初始化图片集合 BitmapImage image
= new BitmapImage(new Uri(string.Format("ms-appx:///Resources/teemo_{0}.png", i))); list.Add(image); } display.Images = list; display.Show();

//停止动画的时候调用这个方法

display.Stop();

 完成;

写的不好,请多理解

gayhub地址:https://github.com/hei12138/LOL-/tree/master/Mycontrols

这是一个类库项目,里面也有我自定义的一些其他控件

新手,欢迎交流 1329698854@qq.com

 

目录
相关文章
|
9月前
C#WPF 图片在显示时没有问题,但在运行时图片显示不出来的解决
选中项目,点击右上角的显示全部文件按钮,会将默认隐藏的文件显示出来,选中所需图片,右键,添加到项目,然后选择图片查看属性,生成操作选择resource。完毕。本人目前的解决方案。
294 41
C#WPF 图片在显示时没有问题,但在运行时图片显示不出来的解决
|
JSON Android开发 数据格式
原生app开发技巧——底部导航栏动画效果按钮制作方法之采用photoshop制作gif动画-过渡动画关键帧
原生app开发技巧——底部导航栏动画效果按钮制作方法之采用photoshop制作gif动画-过渡动画关键帧
原生app开发技巧——底部导航栏动画效果按钮制作方法之采用photoshop制作gif动画-过渡动画关键帧
UGUI系列-实现进度条效果(Unity3D)
今天分享一个UGUI 图片实现进度条动画的方法,配合上资源异步加载,可以作为场景加载动画
实现圆形进度条(Unity3D)
今天分享一个制作圆形进度条的方法,原教程比较繁琐,这里给精简一下,更适合于新手
|
UED
uwp - 做一个相对炫酷的动画按钮/按钮动画
原文:uwp - 做一个相对炫酷的动画按钮/按钮动画   看腻了系统自带的button animation何不尝试下自定义一个较为炫酷的动画顺便提升用户体验。效果图: 动画分为几个部分,分别是:内圆从中心放大(1)并同时渐隐(2),外圆从中心放大(3)并同时渐隐(4),按钮整体从中心缩小放大(5),非常简单对吧,代码也是。
1066 0
|
C# Windows
C# WPF 低仿网易云音乐(PC)Banner动画控件
原文:C# WPF 低仿网易云音乐(PC)Banner动画控件 由于技术有限没能做到一模一样的动画,只是粗略地做了一下。动画有点生硬,还有就是没做出网易云音乐的立体感。代码非常简单粗暴,而且我也写有很多注释,这里就不多啰嗦了,直接贴代码。
1514 0
|
前端开发 C# Windows
WPF之鼠标滑动切换图片
原文:WPF之鼠标滑动切换图片   在网上找了一会儿也没找到我想要的效果,还是自己动手,丰衣足食吧。   需求:当前面板中只显示一张图片,图片栏的下部有用来显示当前图片处于图片队列中的位置的圆球,并且点击下部栏内的圆球可以快速切换,附动画缓动效果。
1189 0
|
Web App开发 C# Windows
WPF图片浏览器(显示大图、小图等)
原文:WPF图片浏览器(显示大图、小图等) 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangshubo1989/article/details/46784601 1.概述                最近利用WPF做了一个图片浏览器,能够将文件夹中的所有图片以小图的形式显示,并将选中的图片以512*512大小显示。
2532 0
|
C# 前端开发
WPF 一个弧形手势提示动画
原文:WPF 一个弧形手势提示动画 这是一个操作提示动画,一个小手在屏幕上按照一个弧形来回运动 ...
707 0
UWP 裁切 SoftwareBitmap
//设置源图ImageSource为WriteableBitmap类型 BitmapImage himage = this.imageTarget2.Source as BitmapImage; RandomAccessStreamReference random = RandomAccessStreamReference.
886 0