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 ...
随机推荐
- GIT入门笔记(7)- 修改文件并向版本库提交
1.修改文件vi readme.txt git status 发现被修改的文件列表git diff readme.txt 2.git add readme.txt git status --注意gi ...
- python/MySQL(索引、执行计划、BDA、分页)
---恢复内容开始--- python/MySQL(索引.执行计划.BDA.分页) MySQL索引: 所谓索引的就是具有(约束和加速查找的一种方式) 创建索引的缺点是对数据进行(修改.更新.删除) ...
- Selenium+Chrome/phantomJS模拟浏览器爬取淘宝商品信息
#使用selenium+Carome/phantomJS模拟浏览器爬取淘宝商品信息 # 思路: # 第一步:利用selenium驱动浏览器,搜索商品信息,得到商品列表 # 第二步:分析商品页数,驱动浏 ...
- jvm学习记录-对象的创建、对象的内存布局、对象的访问定位
简述 今天继续写<深入理解java虚拟机>的对象创建的理解.这次和上次隔的时间有些长,是因为有些东西确实不好理解,就查阅各种资料,然后弄明白了才来做记录. (此文中所阐述的内容都是以Hot ...
- MySQL 5.7 基于复制线程SQL_Thread加快恢复的尝试
1. MySQL 数据恢复常用办法 MySQL恢复的方法一般有三种: 1. 官方推荐的基于全备+binlog , 通常做法是先恢复最近一次的全备,然后通过mysqlbiinlog --start-po ...
- thinkphp3.2v
1.thinphp环境搭建 一.将thinkphp文件拿出来,对我们有用的是cof和library,其他对开发都没有作用. 在thinkphp/library/think文件夹中几个重要的文件 1.A ...
- [LeetCode] Number of Distinct Islands 不同岛屿的个数
Given a non-empty 2D array grid of 0's and 1's, an island is a group of 1's (representing land) conn ...
- [LeetCode] Replace Words 替换单词
In English, we have a concept called root, which can be followed by some other words to form another ...
- [LeetCode] Minimum Index Sum of Two Lists 两个表单的最小坐标和
Suppose Andy and Doris want to choose a restaurant for dinner, and they both have a list of favorite ...
- Scriplet的三种代码
Jsp中注释分为显示注释和隐式注释, 显示注释 -- 可以通过查看源代码看到 <!-- 第一种注释 --> 隐式注释 -- 源代码中看不到 <%--jsp注释---%> & ...