C# 制作屏保(图片位置随机变化)
最近无所事事,闲着无聊,在网上翻看资料时碰巧看到了屏保制作,根据大神的思路也理解到屏保也不是很难。因此根据我自己的理解,动手谢了一个屏保。
首先,打开VS2010创建一个Windows窗体应用程序,名称可以随便取(我取名ScreeTest),程序创建成功后,VS2010自动打开Form1窗体,由于屏保运行时界面布满整个屏幕,而且在任务管理器中也没有对应的exe程序,因此我们需要设置窗口属性:FormBoderStyle属性为None,ShowInTaskbar属性为False,WindowState属性为Maximized,AutoScaleMode属性为Font。然后在窗体中拖入控件,label(1个)-显示当前时间、timer(2个)-刷新时间、图片位置变化刷新,控件位置随便放。设置timer属性Interval为100。好了,界面布局就这样。
然后就是后台程序的编写。下面我直接上码:
1、设置动态时间:
public partial class Form1 : Form
{
public Form1 ()
{
InitializeComponent();
this.DoubleBuffered = true;//设置本窗体双缓存
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
timer1.Start();
timer2.Start();
} private void Form1 _Load(object sender, EventArgs e)
{
//窗体单击时退出程序
this.Click += new System.EventHandler(Exit);
this.lblTimeNow.Location = new System.Drawing.Point((this.Size.Width / ), this.Size.Height / +);//设置label显示位置屏幕中上方
} private void Exit(object sender, EventArgs e)
{
Application.Exit();
}
private void timer1_Tick(object sender, EventArgs e)
{
lblTimeNow.Text = DateTime.Now.ToString();
} private void Form1 _Deactivate(object sender, EventArgs e)
{
Application.Exit();
}
}
}
2、动态图片设置
//设置全局变量用于切换图片位置
private BitMap bp=new BitMap("Blue.jpg");//设置图片
private Random rd=new Random();
private int x=;
private int y=; private void timer2_Tick(object sender,EventArgs e)
{
//获取屏幕大小
Rectangle rt =Screen.GetWorkingArea(this);
x=rd.Next(rt.Width);
y=rd.Next(rt.Height);
if(x+bp.Width>rt.Width)
{
x=rt.Width-bp.Width;
}
if(y+bp.Height>rt.Height)
{
y=rt.Height-bp.Height;
}
this.Invalidate();
}
private void Form1_Paint(object sender,PaintEventArgs e)
{
e.Graphics.DrawImage(bp,x,y,bp.Width,bp.Height);
}
这样,程序就写完了,编译生成运行。效果就出来了
C# 制作屏保(图片位置随机变化)的更多相关文章
- C#制作简易屏保
前言:前段时间,有个网友问我C#制作屏保的问题,我瞬间懵逼了(C#还可以制作屏保!).于是我去查阅相关资料,下面把C#如何制作屏保的过程及我学习过程的心得也记录下来,希望对需要的人能有帮助. 基本思路 ...
- C#制作简易屏保(转)
C#制作简易屏保[原创] 原始网址: http://www.cnblogs.com/drizzlecrj/archive/2006/10/06/522182.html 2006-10-06 16:25 ...
- WPF 制作 Windows 屏保
分享如何使用WPF 制作 Windows 屏保 WPF 制作 Windows 屏保 作者:驚鏵 原文链接:https://github.com/yanjinhuagood/ScreenSaver 框架 ...
- wpf 制作播放视频的屏保程序、而且能分屏显示
这个程序用到了WPF里 “visual_Brush”(主要是为了实现分屏显示) , “UserControl” ,这两个知识点: 在屏保状态下播放指定文件夹下的视频,而且能分屏显示: 把编译好的屏保 ...
- 一个仿windows泡泡屏保的实现
一个仿windows泡泡屏保的实现 有天看到有人在百度知道上问windows 泡泡屏保该怎么用C#做,一时有趣,就做了一个出来,对于其中几个要点总结如下: 一,屏保程序的制作要求 屏保程序的扩展名是. ...
- Tkinter 项目-屏保
参考教程,以及网上资料,针对小白更好理解 关于tkinter的屏保涉及的知识点和思想 项目分析: 屏保启动方式:手动,自动 敲击键盘或者移动鼠标后,或者其他引发事件,则停止 如果屏保是一幅画的话,则没 ...
- 【小梅哥FPGA进阶教程】第十四章 TFT屏显示图片
十四.TFT屏显示图片 本文由杭电网友曾凯峰贡献,特此感谢 学习了小梅哥的TFT显示屏驱动设计后,想着在此基础上通过TFT屏显示一张图片,有了这个想法就开始动工了.首先想到是利用FPGA内部ROM存储 ...
- 重新想象 Windows 8.1 Store Apps (92) - 其他新特性: CoreDispatcher, 日历, 自定义锁屏系列图片
[源码下载] 重新想象 Windows 8.1 Store Apps (92) - 其他新特性: CoreDispatcher, 日历, 自定义锁屏系列图片 作者:webabcd 介绍重新想象 Win ...
- 星际SC地图制作中生成随机位置,也包括所有需要随机的效果
星际SC地图制作中生成随机位置,也包括所有需要随机的效果 利用单位 kakaru T 开头那个, kakaru是随机变化位置 注意kakaru的放置位置和占用格子大小,kakaru周围放上LOCATI ...
随机推荐
- 我的第二个开源库SuperTextView——中文文档
一个简单的TextView实现了打字机的效果让文字一个个显示出来, 方法介绍: startShow 开始打字 使用: startShow(int typeStartTime,int typeTime ...
- leetcode算法: Find Bottom Left Tree Value
leetcode算法: Find Bottom Left Tree ValueGiven a binary tree, find the leftmost value in the last row ...
- vue2与vue1的区别
在前面的学习过程中我们已经对vue1有了一定的了解,下面我们来学习一下vue2,看一下vue1与vue2有什么区别. 区别1: 在vue2中使用v-for指令时它可以添加重复的内容,就像可以添加相同的 ...
- hdu1052 Tian Ji -- The Horse Racing---田忌赛马贪心
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1052 题目大意: 田忌和齐王各有N匹马,判断怎样比赛,使田忌净胜场数最多. 思路: 一开始贪心出错, ...
- Java基础小记
一.数据类型转换 1.引用数据类型 包装类型:Byte.Short.Long.Integer.Character.Float.Double.Boolean 2.基本类型与包装类转换 Java里有8种包 ...
- Java内存回收机制.md
1.java的内存 java的内存结构分为 堆 (是gc的主要区域) 线程共享,主要是用于分配实例对象和数组 栈 线程私有,它的生命周期和线程相同,又分成 虚拟机栈和本地方法栈,只有它会报 Stack ...
- 前端之旅HTML与CSS篇之a便签中放入其他块元素会撑大高度的原因
原因:a元素下有一个匿名文本,这个文本外有一个匿名行级盒子,它有的默认vertical-align是baseline的,而且往往因为上文line-height的影响,使它有个line-height,从 ...
- 持久化 XSS:ServiceWorkers 利用
来源:http://www.mottoin.com/95058.html 来源:https://www.owasp.org/images/3/35/2017-04-20-JSONPXSS.pdf Se ...
- phpcmsV9.5.8 后台拿shell
参考url:https://xianzhi.aliyun.com/forum/read/1507.html poc:index.php??m=content&c=content&a=p ...
- ftp爆破(python脚本)
最近在乌云看到一份端口详解:为了锻炼自己,按照端口详解写脚本 #!/usr/local/bin/ python #-*- coding: UTF-8 -*- __author__ = '' from ...