赞
踩
目录
(1)Form1的BackColor = SystemColors.Control
(2) Form1的背景色是某种颜色,比如BackColor = SystemColors.White
非矩形窗体是一种特殊窗体。创建非矩形窗体时,主要通过重写窗体OnPaint方法,并在其中对窗体进行重绘,然后使用透明色将窗体设置为透明来实现的。
该方法主要用来重新绘制窗体图像。语法格式如下:
- protected override void OnPaint(PaintEventArgs e)
- 参数说明
- PaintEventArgs:为Paint事件提供数据。
将窗体设置为透明时用到了Bitmap类的MakeTransparent方法,该方法主要用来使指定的颜
色对Bitmap位图透明。语法格式如下:
- publie void MakeTransparent(Color transparentColor)
- 参数说明
- transparentColor:Color结构,它表示要使之透明的颜色。
有两种情况,要透明的颜色的处理,用不同的办法:
- // Form1的设置
- BackColor = SystemColors.Control;
- TransparencyKey = SystemColors.Control;
-
- // 透明化控制
- bit = new Bitmap(Properties.Resources.bccd);
- bit.MakeTransparent(Color.FromKnownColor(KnownColor.Control)); //对Control色的透明化
- // Form1的设置
- BackColor = SystemColors.White;
- TransparencyKey = SystemColors.White;
-
- // 透明化控制
- bit = new Bitmap(Properties.Resources.bccd);
- bit.MakeTransparent(Color.White); //只对Color.White透明化
详见本文作者写的其他文章:
设计一个圆形的特殊窗体,双击鼠标关闭窗体。
- //------------------------------------------------------------------------------
- // <auto-generated>
- // 此代码由工具生成。
- // 运行时版本:4.0.30319.42000
- //
- // 对此文件的更改可能会导致不正确的行为,并且如果
- // 重新生成代码,这些更改将会丢失。
- // </auto-generated>
- //------------------------------------------------------------------------------
-
- namespace _178.Properties {
- using System;
-
-
- /// <summary>
- /// 一个强类型的资源类,用于查找本地化的字符串等。
- /// </summary>
- // 此类是由 StronglyTypedResourceBuilder
- // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
- // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
- // (以 /str 作为命令选项),或重新生成 VS 项目。
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resources {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resources() {
- }
-
- /// <summary>
- /// 返回此类使用的缓存的 ResourceManager 实例。
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager {
- get {
- if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("_178.Properties.Resources", typeof(Resources).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- /// <summary>
- /// 重写当前线程的 CurrentUICulture 属性,对
- /// 使用此强类型资源类的所有资源查找执行重写。
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture {
- get {
- return resourceCulture;
- }
- set {
- resourceCulture = value;
- }
- }
-
- /// <summary>
- /// 查找 System.Drawing.Bitmap 类型的本地化资源。
- /// </summary>
- internal static System.Drawing.Bitmap bccd {
- get {
- object obj = ResourceManager.GetObject("bccd", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
- }
- }
- namespace _178
- {
- partial class Form1
- {
- /// <summary>
- /// Required designer variable.
- /// </summary>
- private System.ComponentModel.IContainer components = null;
-
- /// <summary>
- /// Clean up any resources being used.
- /// </summary>
- /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form Designer generated code
-
- /// <summary>
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- /// </summary>
- private void InitializeComponent()
- {
- SuspendLayout();
- //
- // Form1
- //
- AutoScaleDimensions = new SizeF(7F, 17F);
- AutoScaleMode = AutoScaleMode.Font;
- BackColor = Color.White;
- BackgroundImageLayout = ImageLayout.None;
- ClientSize = new Size(300, 300);
- DoubleBuffered = true;
- FormBorderStyle = FormBorderStyle.None;
- Name = "Form1";
- StartPosition = FormStartPosition.CenterScreen;
- Text = "创建非矩形窗体";
- TransparencyKey = Color.White;
- Load += Form1_Load;
- MouseDoubleClick += Form1_MouseDoubleClick;
- ResumeLayout(false);
- }
-
- #endregion
- }
- }
- namespace _178
- {
- public partial class Form1 : Form
- {
- Bitmap? bit;//声明一个Bitmap位图对象
- public Form1()
- {
- InitializeComponent();
- }
-
- private void Form1_Load(object sender, EventArgs e)
- {
- bit = new Bitmap(Properties.Resources.bccd);
- bit.MakeTransparent(Color.White); //使用默认的透明颜色对Bitmap位图透明
- //bit.MakeTransparent(Color.FromKnownColor(KnownColor.Control));
- }
-
- /// <summary>
- /// 重载OnPaint方法
- /// </summary>
- /// <param name="e"></param>
- protected override void OnPaint(PaintEventArgs e)
- {
- e.Graphics.DrawImage(bit!, new Point(0, 0));//在窗体上绘制图片
- }
-
- /// <summary>
- /// 关闭窗体
- /// </summary>
- private void Form1_MouseDoubleClick(object sender, MouseEventArgs e)
- {
- Close();
- }
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。