最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實現(xiàn)懸浮窗口的方法詳解

 更新時間:2022年12月21日 11:14:44   作者:鋼鐵男兒  
這篇文章主要為大家詳細介紹了C#如何實現(xiàn)懸浮窗口的相關(guān)資料,文中的示例代碼講解詳細,對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以了解一下

一 懸浮窗口

特點:

① 窗口一般較小,有時為不規(guī)則背景;

② 置頂顯示;

③ 窗口支持拖動;

④ 一般用于程序狀態(tài)顯示,比如顯示下載進度;

⑤ 一般支持右鍵菜單、拖拽操作等;

二 創(chuàng)建懸浮窗口

1 實現(xiàn)細節(jié)

① 無邊框FormBorderStyle:Noe;

② 置頂顯示TopMost:true;

③ 顯示位置StartPosition:Manual自由指定;

2 細節(jié)

對應(yīng)Form來說先Show,后設(shè)置大小和位置

floatBox=new myFloatBox();
floatBox.Owner=this;
floatBox.Show();
floatBox.Bounds=new Rectangle(0,0,100,100);

三 圓形背景

代碼實現(xiàn):

① 添加一個正方形的圖片資源;

② 繪制圓形圖片;

③ 將外圍白色區(qū)域設(shè)為透明;

④ 繪制一個蒙版,確保中間區(qū)域沒有白色像素點;

子窗體

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;//在任務(wù)欄不顯示圖標
            this.TopMost = true;//置頂顯示
            this.BackColor = Color.White;//背景色
            this.TransparencyKey = Color.White;//指定透明區(qū)域的顏色

            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));

                //設(shè)置剪輯區(qū)域
                Region oldClip = g.Clip;
                g.Clip = new Region(path);

                //繪制圖像(Clip區(qū)域之外的部分不會顯示)
                if(this.image!=null)
                {
                    Console.WriteLine("圖像:" + image.Size);
                    Console.WriteLine("位置" + this.Size);
                    g.DrawImage(image, rect);
                }

                //覆蓋一層蒙版,確保純白色像素點不會出現(xiàn),因為純白色是透明色
                Brush brush = new SolidBrush(Color.FromArgb(10, 255, 255, 255));
                g.FillRectangle(brush, rect);
                brush.Dispose();

                g.Clip.Dispose();
                g.Clip = oldClip;//恢復(fù)

                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);

            //設(shè)置懸浮窗口的背景圖片
            floatingWindow.Image = Properties.Resources.XiaoWu;
        }

        protected override void OnFormClosing(FormClosingEventArgs e)
        {
            base.OnFormClosing(e);
            floatingWindow.Dispose();
        }
    }
}

到此這篇關(guān)于C#實現(xiàn)懸浮窗口的方法詳解的文章就介紹到這了,更多相關(guān)C#懸浮窗口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Unity3D基于OnGUI實時顯示FPS

    Unity3D基于OnGUI實時顯示FPS

    這篇文章主要介紹了Unity3D基于OnGUI實時顯示FPS,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • C#多線程之線程池ThreadPool詳解

    C#多線程之線程池ThreadPool詳解

    本文詳細講解了C#多線程之線程池ThreadPool,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#和lua相互調(diào)用的方法教程

    C#和lua相互調(diào)用的方法教程

    lua是一種腳本語言,可以方便的移植到各種宿主語言中,并且可以支持熱更新,在游戲開發(fā)中也能當做主要的語言來編寫游戲的邏輯,所以這篇文章主要給大家介紹了關(guān)于C#和lua相互調(diào)用的方法教程,需要的朋友可以參考下。
    2017-11-11
  • C#使用log4net記錄日志

    C#使用log4net記錄日志

    本文詳細講解了C#使用log4net記錄日志的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • 如何利用反射構(gòu)建元數(shù)據(jù)查看器

    如何利用反射構(gòu)建元數(shù)據(jù)查看器

    本篇文章是對反射構(gòu)建元數(shù)據(jù)查看器進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • C# 實現(xiàn)特殊字符快速轉(zhuǎn)碼

    C# 實現(xiàn)特殊字符快速轉(zhuǎn)碼

    這篇文章主要介紹了C# 實現(xiàn)特殊字符快速轉(zhuǎn)碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • C# wpf Grid中實現(xiàn)控件拖動調(diào)整大小的示例代碼

    C# wpf Grid中實現(xiàn)控件拖動調(diào)整大小的示例代碼

    本文主要介紹了C# wpf Grid中實現(xiàn)控件拖動調(diào)整大小的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • c# 從IE瀏覽器獲取當前頁面的內(nèi)容

    c# 從IE瀏覽器獲取當前頁面的內(nèi)容

    從IE瀏覽器獲取當前頁面內(nèi)容可能有多種方式,今天我所介紹的是其中一種方法?;驹恚寒斒髽它c擊當前IE頁面時,獲取鼠標的坐標位置,根據(jù)鼠標位置獲取當前頁面的句柄,然后根據(jù)句柄,調(diào)用win32的東西進而獲取頁面內(nèi)容。感興趣的朋友可以參考下本文
    2021-06-06
  • c#的sortedlist使用方法

    c#的sortedlist使用方法

    這篇文章主要介紹了c#的sortedlist使用方法,需要的朋友可以參考下
    2014-05-05
  • c# 線程安全隊列的用法原理及使用示例

    c# 線程安全隊列的用法原理及使用示例

    這篇文章主要介紹了c# 線程安全隊列的用法原理及使用示例,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-11-11

最新評論

措勤县| 苏尼特左旗| 顺昌县| 岳西县| 红河县| 南皮县| 全南县| 蓬溪县| 苍梧县| 慈利县| 恩施市| 宁海县| 武汉市| 浠水县| 南陵县| 巴彦县| 贵溪市| 鄂托克前旗| 上虞市| 盘山县| 高清| 德令哈市| 九龙城区| 拉萨市| 香格里拉县| 儋州市| 宜春市| 连山| 独山县| 定安县| 福清市| 曲阳县| 无棣县| 科尔| 那坡县| 张北县| 潮州市| 墨脱县| 巴林右旗| 威信县| 保亭|