一 悬浮窗口

特点:
① 窗口一般较小,有时为不规则背景;
② 置顶显示;
③ 窗口支持拖动;
④ 一般用于程序状态显示,比如显示下载进度;
⑤ 一般支持右键菜单、拖拽操作等;

二 创建悬浮窗口

特点:
① 窗口一般较小,有时为不规则背景;
② 置顶显示;
③ 窗口支持拖动;
④ 一般用于程序状态显示,比如显示下载进度;
⑤ 一般支持右键菜单,拖拽操作等;

1 实现细节:

① 无边框FormBorderStyle:Noe;
② 置顶显示TopMost:true;
③ 显示位置StartPosition:Manual自由指定;

2 细节

对应Form来说先Show,后设置大小和位置
floatBox=new myFloatBox();
floatBox.Owner=this;
floatBox.Show();
floatBox.Bounds=new Rectangle(0,0,100,100);

三 圆形背景

① 窗口一般较小,有时为不规则背景;
② 置顶显示;
③ 窗口支持拖动;
④ 一般用于程序状态显示,比如显示下载精度;
⑤ 一般支持右键菜单、拖拽操作等;

代码实现:
① 添加一个正方形的图片资源;
② 绘制圆形图片;
③ 将外围白色区域设为透明;
④ 绘制一个蒙版,确保中间区域没有白色像素点;
子窗体

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Text;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace 圆形背景
{public partial class FloatingWindow : Form{private Image image;public FloatingWindow(){this.FormBorderStyle = FormBorderStyle.None;//无边框this.StartPosition = FormStartPosition.Manual;//手工指定位置this.ShowInTaskbar = false;//在任务栏不显示图标this.TopMost = true;//置顶显示this.BackColor = Color.White;//背景色this.TransparencyKey = Color.White;//指定透明区域的颜色this.SetStyle(ControlStyles.UserPaint, true);this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);}protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);Graphics g = e.Graphics;int w = this.Width, h = this.Height;Rectangle rect = new Rectangle(0, 0, w, h);rect.Inflate(-2, -2);//平滑绘制,反锯齿g.SmoothingMode = SmoothingMode.HighQuality;g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;//绘制一个圆形的图片if(true){GraphicsPath path = new GraphicsPath();int radius = rect.Width / 2;int x = w / 2 - radius;int y = h / 2 - radius;path.AddEllipse(new Rectangle(x, y, radius * 2, radius * 2));//设置剪辑区域Region oldClip = g.Clip;g.Clip = new Region(path);//绘制图像(Clip区域之外的部分不会显示)if(this.image!=null){Console.WriteLine("图像:" + image.Size);Console.WriteLine("位置" + this.Size);g.DrawImage(image, rect);}//覆盖一层蒙版,确保纯白色像素点不会出现,因为纯白色是透明色Brush brush = new SolidBrush(Color.FromArgb(10, 255, 255, 255));g.FillRectangle(brush, rect);brush.Dispose();g.Clip.Dispose();g.Clip = oldClip;//恢复Pen pen = new Pen(Color.LightBlue);g.DrawPath(pen, path);pen.Dispose();}}public Image Image{get { return this.image; }set { this.image = value;this.Invalidate();}}}
}

父窗体

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace 圆形背景
{public partial class Form1 : Form{FloatingWindow floatingWindow;public Form1(){InitializeComponent();floatingWindow=new FloatingWindow();floatingWindow.Show();floatingWindow.Bounds = new Rectangle(0, 0, 100, 100);//设置悬浮窗口的背景图片floatingWindow.Image = Properties.Resources.XiaoWu;}protected override void OnFormClosing(FormClosingEventArgs e){base.OnFormClosing(e);floatingWindow.Dispose();}}
}

C#悬浮窗口 图像背景相关推荐

  1. html悬浮弹窗后面背景变深,JS+CSS实现Div弹出窗口同时背景变暗的方法

    本文实例讲述了JS+CSS实现Div弹出窗口同时背景变暗的方法.分享给大家供大家参考.具体实现方法如下: 代码如下: JS+CSS实现的Div弹出窗口,同时背景变暗 function    locki ...

  2. android 添加随意拖动的桌面悬浮窗口,android 添加随意拖动的桌面悬浮窗口

    用过新版本android 360手机助手都人都对 360中只在桌面显示一个小小悬浮窗口羡慕不已吧? 其实实现这种功能,主要有两步: 1.判断当前显示的是为桌面.这个内容我在前面的帖子里面已经有过介绍, ...

  3. android实现 桌面移动悬浮窗口实现

    现在很多应用都有这样的功能,比如360等安全卫士,手机管家之内的应用. 效果图: 一.实现原理及移动思路 调用WindowManager,并设置WindowManager.LayoutParams的相 ...

  4. android多个悬浮窗口,android 添加随意拖动的桌面悬浮窗口

    用过新版本android 360手机助手都人都对 360中只在桌面显示一个小小悬浮窗口羡慕不已吧? 其实实现这种功能,主要有两步: 1.判断当前显示的是为桌面.这个内容我在前面的帖子里面已经有过介绍, ...

  5. android多个悬浮窗口的实现,android实现桌面移动悬浮窗口

    现在很多应用都有这样的功能,比如360等安全卫士,手机管家之内的应用. 效果图: 一.实现原理及移动思路 调用WindowManager,并设置WindowManager.LayoutParams的相 ...

  6. 桌面悬浮窗口(可拖动)

    一.开发前原理简述 桌面悬浮窗口,(如360的清理加速等悬浮按钮),调用WindowManager,并设置WindowManager.LayoutParams的相关属性,通过WindowManager ...

  7. [Jinkey 原创]震惊!iOS 系统居然自带悬浮窗口调试工具

    原文链接 : 震惊!iOS 系统居然自带悬浮窗口调试工具 -- Jinkey 原创 原文作者 : Jinkey 1 背景 英文原文: http://ryanipete.com/blog/ios/swi ...

  8. 如何在html添加悬浮页面,如何设置悬浮窗口?

    可以用FlashMX来制作,下面是教程 用FlashMX制作拖动悬浮窗口 在课件制作过程中,有些需要重点突出的知识点要在单独的画面中显示,并且要求可以拖动.这就是我们平时所说的可以拖动的悬浮窗口.笔者 ...

  9. android WindowManager 应用内部悬浮窗口总结

    很多地方用到悬浮窗口,但是android现在做了很多限制,禁止悬浮窗口的滥用,尤其是系统权限的窗口基本不予支持,以下是介绍应用内部悬浮窗口不需要任何系统权限的 1   显示一个悬浮窗 // wm = ...

最新文章

  1. Android HTTP2 + Oauth2 + Jwt 接口认证实例
  2. sql server schema下拉不到存储过程_mysql数据库字符编码总结--数据存储编码
  3. JavaWeb三大组件之Servlet
  4. 【专升本计算机】甘肃省专升本计算机基础--判断题--汇编(737道带答案)
  5. 呵呵!Function构造函数
  6. thinkphp3.2自定义success及error跳转页面
  7. c 获取mysql安装路径_linux查看mysql安装路径
  8. Mac Backup软件:不要冒险您的数据!
  9. 2008年具有高校自主选拔录取资格的考生名单 - 江苏版
  10. ASP.NET MVC 控制器激活(三)
  11. 20169219 使用Metaspoit攻击MS08-067实验报告
  12. js代码格式化工具(简单格式化,显示进度条)
  13. JAVA编写俄罗斯方块
  14. AI 视频分析识别系统技术分析
  15. at91sam9260 OpenWRT u-boot移植
  16. 每周论文精读05-A2J:AnchortoJointRegressionNetwork for 3D ArticulatedPoseEstimation from a SingleDepthImage
  17. linux怎么进入sftp命令行,Linux中SFTP命令
  18. <router-link>
  19. Makefile详解——从入门到精通
  20. 1255计算机网络 本,国家开放大学电大本科《计算机网络》2025期末试题及答案(试卷号:1255)...

热门文章

  1. ARM中LDR B BX BL BLX指令的研究
  2. kangle利用ep面板配置https
  3. wget 自己服务器上的文件,关于linux:wget可以用于获取服务器上的所有文件吗?...
  4. 索尼ST18i刷机包 源于官方 感知流畅 深度精简 极度省电 稳定版上市
  5. 如何通过 Matplotlib 绘制动画及保存 GIF 图片?
  6. 第八章 Python入门系列之循环
  7. 基于SSM框架的服饰商城系统的设计与实现(文末附源码)
  8. 在线富文本编辑器-基于Web的HTML编辑器大全(一)
  9. MobTech出席人工智能创想论坛,分享AI+大数据在营销反欺诈场景下的应用
  10. Metasploit笔记