首页 > 编程语言 >c# 透明Panel

c# 透明Panel

时间:2024-09-19 18:02:07浏览次数:9  
标签:opacity 透明 c# CreateParams System value using cp Panel

透明的panel,可用用作遮罩层。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WinFormsApp1
{
    public class TransparentPanel : Panel
    {
        private const int WS_EX_TRANSPARENT = 0x20;
        public TransparentPanel()
        {
            SetStyle(ControlStyles.Opaque, true);
        }

        private int opacity = 1;
        [DefaultValue(1)]
        public int Opacity
        {
            get
            {
                return this.opacity;
            }
            set
            {
                if (value < 0 || value > 100)
                    throw new ArgumentException("value must be between 0 and 100");
                this.opacity = value;
            }
        }
        protected override CreateParams CreateParams
        {
            get
            {
                CreateParams cp = base.CreateParams;
                cp.ExStyle = cp.ExStyle | WS_EX_TRANSPARENT;
                return cp;
            }
        }
        protected override void OnPaint(PaintEventArgs e)
        {
            using (var brush = new SolidBrush(Color.FromArgb(this.opacity * 255 / 100, this.BackColor)))
            {
                e.Graphics.FillRectangle(brush, this.ClientRectangle);
            }
            base.OnPaint(e);
        }
    }
}

 

标签:opacity,透明,c#,CreateParams,System,value,using,cp,Panel
From: https://www.cnblogs.com/zjfree/p/18421090

相关文章

  • 【任务分配】CBBA算法多无人机协同计算和资源分配联合优化策略研究【含Matlab源码 493
    ......
  • 【无人机协同】虚拟引导点结合人工势场法MPC控制多无人机协同攻击(飞行时间和攻击角度
    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信或扫描文章底部QQ二维码。......
  • CSP2024-23
    A题意:维护序列\(a\),支持单点修改。每次找到满足\((a_1\oplusb)\le(a_2\oplusb)\le\cdots\le(a_n\oplusb)\)的最小非负整数\(b\);或判断无解。\(1\len,q\le10^6\)。肯定是把大条件拆成\(n-1\)个小条件,大条件成立当且仅当所有小条件成立。\(a_{i}=a_{......
  • Windows安装时调出系统的cmd功能 Shift+F10
    Windows安装时调出系统的cmd功能Shift+F10(笔记本可能是Shift+FN+F10)比如可以转换磁盘分区形式。 在Windows安装程序中同时按下【Shift+F10】键以打开命令提示符窗口,并按顺序输入以下命令。 diskpart listdisk(会显示磁盘列表) selectdisk1(1为要安装......
  • 2025秋招LLM大模型多模态面试题(七)- 思维链CoT
    1.思维链(cot)论文名称:Chain-of-ThoughtPromptingElicitsReasoninginLargeLanguageModels论文连接:Chain-of-ThoughtPromptingElicitsReasoninginLargeLanguageModels1.什么是思维链提示?思维链(CoT)提示过程是一种最近开发的提示方法,它鼓励大语言模型解释其......
  • 使用memcpy进行分段copy
    一、概述使用场景:在音视频开发中,用YUV数据+OpenGL进行画面渲染。经常会将Y分量、U分量、V分量分开。分别上传到GPU,由GPU转换为RGB进行最终展示。使用这种方式的原因是基于GPU计算效率高为前提的。在这个过程中经常会用到一个c函数memcpy。将yuv数据分别c......
  • COMP90086 Computer Vision
    COMP90086Computer Vision,2024Semester 2Assignment3: ComputingdisparitybetweenstereoimagesIntroductionFindingthedisparitiesbetweentwoimagesisthemainstepinestimatingthethreedimensionalstruc- ture of a scene.This assignmentuse......
  • DS2000 Every Vote Counts
    DS2000Fall2024Homework 1Assigned: September 13,2024Deadline: September20, 2024at9pmeasternSubmiteachprogramasa .pyfileingradescope (filenames are specifiedbelow).You may submit multiple timesrightupuntilthedeadline.Y......
  • 基于LangChain手工测试用例转App自动化测试生成工具
    在传统编写App自动化测试用例的过程中,基本都是需要测试工程师,根据功能测试用例转换为自动化测试的用例。市面上自动生成Web或App自动化测试用例的产品无非也都是通过录制的方式,获取操作人的行为操作,从而记录测试用例。整个过程类似于但是通常录制出来的用例可用性、可维护......
  • springcloud组件openfeign超时时间设置
    openfeign超时时间设置有两种方式1、通过配置类;2、通过配置文件1、使用配置类代码如下:@ConfigurationpublicclassFeignConfig{@BeanpublicRequest.Optionsoptions(){//第一个参数是连接超时时间,第二个参数是处理超时时间returnnewReque......