基于四张照片制作简易动画
使用控件
①Timer
②pictureBox
1.关于组件的背景图像布局BackgroundImageLayout
我们在BackgroundImage中可以改变组件的背景图像,而背景图的显示通常会按照你上传图像的原始尺寸进行载入。那么如何改变背景图像的布局方式呢,需要用到BackgroundImageLayout,在该属性中,一共有5中选择:
None:仅按照上传尺寸进行展示
Tile:按照原始尺寸,横向中心铺满整个窗体
Center:按照原始尺寸,展示在组件正中间
Stretch:根据窗体大小自动改变图片原始的比例
Zoom:不改变原始尺寸比例,图片宽度和窗体一样
(5中布局格式展示)
2.图片不显示或者为未去背的问题!!
在我按照Picture.Image去加载想要展示出来的图片的时候,我发现并没有显示出来,而且也没有报错。于是我去更改了背景布局格式BackgroundImageLayout以及图像处理方式SizeMode,发现都没有任何的改变。
后来发现原来我是调用错了方法,应该使用Picture.BackgroundImage去加载我之前图片,因为我上传的时候修改的是BackgroundImage,即我只是改变了这个组件的背景图像,而这个组件是没有包含任何东西的。(这里所说的包含任何东西指的是:应该通过Image将所需要的图片上传上去,而背景应该保持默认的透明)
将图片换成通过Image加载上去,再使用Picture.Image去加载想要展示出来的图片即可。
3.关于图片Image的布局显示方式
这个时候就可以和BackgroundImageLayout进行对比了,BackgroundImageLayout针对的是背景图片的显示的调整,而SizeMode是对于加入的图片的显示进行的操作:
Normal:图片保持原有尺寸,展示在左上角,多余部分会被截去
StretchImage:根据窗体大小自动调整比例填充这个窗口
AutoSize:根据图片大小自动改变窗口大小
CenterImage:图片保持原有尺寸,展示在中心,多余部分会被截去
Zoom:图片保持原有尺寸的比例增大或缩小
4.当发现加入的图片的背景不是透明的!!!
当我仔仔细细的检查了我插入的图片确实去背景了之后,我发现,他还是这样子的!!这就很奇怪了
因为插入的Image是透明背景的情况下,如果PictureBox仍然有背景,那显示的就是调用图片的那个PictureBox了。我们增加这样一段代码:
picRun.BackColor = Color.Transparent; // picRun是我设置的需要调用图片的组件
将调用图片的那个PictureBox背景改成透明的,即可;
5.动画闪烁的问题
在完成了正常的显示之后,会发现有时候小人后面好像还出现了别的东西
我们把窗体form的的double buffeted属性改成“True”即可
6.Timer控件的Tick事件
在Timer这个控件中,只有Tick这一个事件。也比较简单,通过引发Tick 事件,Timer 控件可以有规律地隔一段时间执行一次代码。