1. 程式人生 > >.net窗體或控制元件透明效果

.net窗體或控制元件透明效果

在winform介面設計中,許多場景需要依賴透明或者半透明窗體或者控制元件,比如設定引數區域, 實時動態顯示條等。有以下幾種方法可以實現介面或者窗體的透明或者半透明效果:

1.winform窗體,所有繼承Form窗體類的,通過設定Opacity熟悉即可實現

效果如下所示。

namespace formTransparent
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            this.Opacity = this.trackBar1.Value*1.0 / 100;
        }
    }
}
2.控制元件的透明效果

winform中的控制元件是沒有這種效果的,如果需要做成實時資訊顯示框效果,就需要設定控制元件的透明度。(通過建立一個窗體也可以實現透明效果,需要多建立一個視窗類,此處不採用這種做法)

此處以lable標籤實現實時狀態資訊顯示。用piturebox等控制元件也可以很方便的實現

namespace formTransparent
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.lblStatus.Parent = this;
            this.lblStatus.BackColor = Color.Transparent;
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            string str = "當前位置:"+ e.X+","+e.Y;
            this.lblStatus.Text = str;
            this.lblStatus.Location = new Point(e.X + 30, e.Y + 30);
            this.lblStatus.Refresh();
        }
        
    }
}
如果想要改變透明顏色,則需要重新自定義backcolor,比如設定為紅色透明,this.lblStatus.BackColor = Color.FromArgb(20, 255, 0, 0);,其中A為透明度,後面的為具體的顏色值。效果如下圖所示

具體應用還有實現pictruebox的透明圖片的載入等
3.還有一種偽透明效果,直接繪製到介面上,一般不建議採用,因為下方的資料顯示介面和實時資訊介面混為一體,一旦更新其中一個另一個必須跟著重新整理,採用2中是最好的,實現了資料顯示和實時資訊的分開,無需資料顯示層大量重新整理介面。以下僅從技術實現角度進行分析

   (1)採用GDI繪圖,先繪製到記憶體中,然後通過gdi的透明拷貝直接拷貝到響應的裝置上下文中。

   (2)獲取GDI+對應的資料圖層的Graphics物件,通過繪製方法drawX等方法進行繪製,實現比較簡單

綜上所述,第二種方式是最為推薦的實現控制元件透明效果的方式,因為實現了標籤顯示和資料顯示的分開。

暫時想到這麼多,歡迎大家討論。

相關推薦

.net窗體控制元件透明效果

在winform介面設計中,許多場景需要依賴透明或者半透明窗體或者控制元件,比如設定引數區域, 實時動態顯示條等。有以下幾種方法可以實現介面或者窗體的透明或者半透明效果: 1.winform窗體,所有繼承Form窗體類的,通過設定Opacity熟悉即可實現 效果如下所示。

Winfrom Panel 控制元件透明效果顯示

繼承Panel控制元件然後重寫方法 using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using System.Drawing;

Gtk透明窗體控制元件的研究

網上這些類似的資料很多,我大致上都是用過,我個人總結如下:透明的一般實現方法1:使用異形窗體實現透明在這裡我引用了別人的一個sample,其原理就是在設定不規則窗體,然後設定控制元件的背景圖實現透明,適合用於設定簡單控制元件上面的圖,使控制元件變為透明#include <

C# winform中一個類中如何呼叫另一個窗體控制元件方法

轉載地址:http://blog.csdn.net/ichenqingyun/article/details/52622340 一種是建立窗體物件的方式,通過物件呼叫控制元件或方法 例如: Form1 form1 = new Form1(); form1.Button;

C#Form.SplitContainer中清除控制元件textbox值(窗體.容器.控制元件

文章目錄 問題背景 問題程式碼 問題解決 正確清除程式碼 問題延申 問題背景 早上在完善不確定度計算器時,想要清空實驗資料輸入時所有textbox控制元件值。 問題程式碼

ASP.NET Web 伺服器控制元件事件模型

ASP.NET 中有一個重要功能,允許您通過與客戶端應用程式中類似的、基於事件的模型來對網頁進行程式設計。舉一個簡單的例子,例如,可以向 ASP.NET 網頁中新增一個按鈕,然後為該按鈕的 Click 事件編寫事件處理程式。儘管這種情況在僅使用客戶端指令碼(在動態 HTML 中處理按鈕的 oncli

在圖片上停留時逐漸增強減弱的透明效果

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>在圖片上停留時逐漸增強或減弱的透明效果</title> <

利用photoView實現可點選放大到全屏顯示的控制元件效果類似於微信朋友圈點開看大圖

此控制元件繼承自ImageView,實現效果與微信朋友圈點開看大圖相似,點選控制元件後進入沉浸模式全屏顯示大圖,全屏時雙擊或手指拉伸可放大圖片,單擊會退出全屏 老規矩,先上控制元件實現程式碼: /** * 可點選放大全屏顯示的imageView * Created by Administ

ASP.NET中驗證控制元件的使用

目錄 1.RequireFiledValidation  2.RangeValidation  3.CompareValidator  4.RegularExpressionValidator(正則表示式線上編輯器:http://tools.jb51.n

.net自定義控制元件Control、WebControl、CompositeControl

一、呈現方法 1、Control主要有以下4個方法用於呈現 1 //該方法為入口方法 2 public virtual void RenderControl (HtmlTextWriter writer) 3 { 4 this.RenderControl(write

自定義控制元件透明

  最近要用到一個日期控制元件, 自帶控制元件不符合要求,網上找了也沒想要的。……於是乎有了該文章…… 自拍一張:   如上圖,新建usercontrol,新增textbox、picturebox、monthcalendar。(圖 上的小正方形就是picturebox可以根據圖示自己定義)

ASP.NET Atlas簡單控制元件介紹——Sys.Component基類與Sys.UI.Control基類

本系列有三篇文章: ASP.NET Atlas簡單控制元件介紹——Sys.Component基類與Sys.UI.Control基類 ASP.NET Atlas簡單控制元件介紹——InputControl,TextBox,Button和CheckBox ASP.N

【ASP.NET】——複合控制元件之TreeView控制元件

在ASP.NET中常用的複合控制元件有:TreeView控制元件,MultiView控制元件,JavaScript方式的選項卡,WiZard控制元件。 今天先來學習TreeView控制元件。 在開發過程中經常會遇到一些有樹形層次關係的資料,比如顯示無限極分類和顯示某個檔案下的所有檔案及資

.NET使用flexcell控制元件(2)

1.新增資料 //新增一行資料 grid1.Rows += 1; int row = grid1.Rows-1; string sid, sname,sclass,smajor, ssex; int sage; //獲取新建行的資料 sid = grid1.Cell(row

ASP.net頁面及控制元件

ASP.NET 是一個使用 HTML、CSS、JavaScript 和伺服器指令碼建立網頁和網站的開發框架。 ASP.NET 支援三種不同的開發模式: Web Pages(Web 頁面)、MVC(Model View Controller 模型-檢視-控制器)

android studio的preview看不到佈局,導致看不到控制元件效果

android Studio新建專案,preview只顯示一個大白版,看不到任何控制元件,不能預覽。 這時候我上網查了很多資料,最後發現可能是這幾個原因導致的: 1。 Invalidate caches/Restart... 2.  force refresh st

js-標籤控制元件的顯示與隱藏

tr 控制元件的顯示與隱藏 每次改變新增一個onchang事件,觸發下面的tr列的顯示與隱藏 function choosemulti() { var ismulti = $("#ismul

MFC學習之 對話方塊設定背景顏色及控制元件透明的方法

對話方塊設定背景色之後控制元件不透明的問題。 1.對話方塊設定背景色: 方法1:(用OnPaint()) 在Dlg.h中:宣告 afx_msg void OnPaint();                                HICON m_hIcon; 在Dl

ASP.NET MVC 常用控制元件的使用方法總結

1:action 重定向       (a).return RedirectToAction("Index");//可跳本controller中的action       (b).return RedirectToRoute(new {controller="Home",a

C# ASP.NET上傳控制元件fileupload的使用

程式碼實現了簡單的圖片上傳功能(改一下也可以上傳其他的),沒有做圖片大小和格式的判斷,主要是熟悉fileupload控制元件 介面程式碼: <%@ Page Language="C#" Aut