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

C#中Region、Exclude的用法小結(jié)

 更新時間:2025年11月27日 09:11:11   作者:wangnaisheng  
本文主要介紹了C#中Region、Exclude的用法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在 C# 中,RegionExclude 是與圖形編程相關(guān)的概念,通常在使用 System.Drawing 命名空間進(jìn)行 GDI+ 繪圖時出現(xiàn)。它們主要用于定義和操作二維空間中的區(qū)域(幾何區(qū)域),常用于窗體裁剪、控件重繪、圖形繪制優(yōu)化等場景。

一、Region的用法

Region 類(位于 System.Drawing 命名空間)表示一個屏幕上的區(qū)域,可以是矩形、橢圓、多邊形,甚至是復(fù)雜組合形狀。

1. 創(chuàng)建 Region 的方式:

using System.Drawing;

// 1. 從矩形創(chuàng)建
Rectangle rect = new Rectangle(10, 10, 100, 100);
Region region1 = new Region(rect);

// 2. 從橢圓創(chuàng)建
GraphicsPath path = new GraphicsPath();
path.AddEllipse(20, 20, 80, 80);
Region region2 = new Region(path);

// 3. 從 GraphicsPath 創(chuàng)建復(fù)雜形狀
GraphicsPath complexPath = new GraphicsPath();
complexPath.AddPolygon(new Point[] {
    new Point(0, 0),
    new Point(50, 100),
    new Point(100, 0)
});
Region region3 = new Region(complexPath);

2. Region 的常用操作

  • Intersect:交集
  • Union:并集
  • Xor:異或
  • Exclude:排除(見下文)
  • Complement:補集
  • GetHrgn:獲取 GDI 句柄(用于 Win32 API)

二、Exclude的用法

ExcludeRegion 類的一個方法,用于從當(dāng)前區(qū)域中移除另一個區(qū)域,即執(zhí)行“差集”操作。

方法簽名:

public void Exclude(Rectangle rect);
public void Exclude(RectangleF rect);
public void Exclude(Region region);

示例:

// 創(chuàng)建一個大矩形區(qū)域
Region bigRegion = new Region(new Rectangle(0, 0, 200, 200));

// 創(chuàng)建一個小矩形區(qū)域(要排除的部分)
Rectangle hole = new Rectangle(50, 50, 100, 100);

// 從小區(qū)域中“挖掉”一個洞
bigRegion.Exclude(hole);

// 現(xiàn)在 bigRegion 是一個外框為 200x200,中間有 100x100 空洞的區(qū)域

實際應(yīng)用場景:

創(chuàng)建非矩形窗體的透明區(qū)域

這樣窗體就變成了一個“框”,中間是透明的(不可點擊、不繪制)。

this.Region = new Region(new Rectangle(0, 0, 300, 300));
this.Region.Exclude(new Rectangle(50, 50, 200, 200)); // 中間挖空

繪制時排除某些區(qū)域不重繪

Graphics g = this.CreateGraphics();
Region updateRegion = g.Clip; // 獲取當(dāng)前裁剪區(qū)域
updateRegion.Exclude(someControl.Bounds); // 排除某個控件區(qū)域
g.Clip = updateRegion;
// 然后只繪制除該控件外的區(qū)域

三、注意事項

  • Region 是 GDI+ 資源,使用后應(yīng)釋放:
  • 在 WinForms 中,Control.Region 屬性可以設(shè)置控件的可見/可點擊區(qū)域。
  • Exclude 操作是破壞性操作,會修改原 Region 對象,而不是返回新對象。
  • 對于高性能圖形應(yīng)用,頻繁創(chuàng)建/銷毀 Region 可能影響性能,需注意優(yōu)化。

四、總結(jié)

概念說明
Region表示一個二維區(qū)域,可用于裁剪、繪圖、窗體形狀控制等
Exclude從當(dāng)前 Region 中移除指定區(qū)域,實現(xiàn)“差集”效果,常用于“挖洞”或排除繪制區(qū)域

這些功能在自定義控件、不規(guī)則窗體、動畫特效等場景中非常有用。

到此這篇關(guān)于C#中Region、Exclude的用法小結(jié)的文章就介紹到這了,更多相關(guān)C# Region、Exclude內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于C#中XmlWriter寫入Xml的深入分析

    基于C#中XmlWriter寫入Xml的深入分析

    本篇文章是對C#中XmlWriter寫入Xml進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#使用DevExpress中的XtraCharts控件實現(xiàn)圖表

    C#使用DevExpress中的XtraCharts控件實現(xiàn)圖表

    這篇文章介紹了C#使用DevExpress中的XtraCharts控件實現(xiàn)圖表的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#利用FileSystemWatcher實時監(jiān)控文件的增加,修改,重命名和刪除

    C#利用FileSystemWatcher實時監(jiān)控文件的增加,修改,重命名和刪除

    好多時候,我們都需要知道某些目錄下的文件什么時候被修改、刪除過等。本文將利用FileSystemWatcher實現(xiàn)實時監(jiān)控文件的增加,修改,重命名和刪除,感興趣的可以了解一下
    2022-08-08
  • C#利用原圖和水印圖的重疊簡單實現(xiàn)水印的方法

    C#利用原圖和水印圖的重疊簡單實現(xiàn)水印的方法

    這篇文章主要介紹了C#利用原圖和水印圖的重疊簡單實現(xiàn)水印的方法,實例演示了完整的水印操作類實現(xiàn)方法,需要的朋友可以參考下
    2016-04-04
  • C# VB 實現(xiàn)10進(jìn)制 16進(jìn)制之間互相轉(zhuǎn)換

    C# VB 實現(xiàn)10進(jìn)制 16進(jìn)制之間互相轉(zhuǎn)換

    如何將10進(jìn)制轉(zhuǎn)成16進(jìn)制,又如何將16進(jìn)制數(shù)轉(zhuǎn)成10進(jìn)制,本文將介紹C#和VB實現(xiàn)代碼,需要了解的朋友可以參考下
    2012-11-11
  • 基于C# WinForms開發(fā)的Windows系統(tǒng)監(jiān)控工具

    基于C# WinForms開發(fā)的Windows系統(tǒng)監(jiān)控工具

    最近開發(fā)了一個輕量級的 Windows 系統(tǒng)監(jiān)控工具,可以實時監(jiān)控 CPU、內(nèi)存、GPU、溫度、網(wǎng)絡(luò)流量等硬件信息,并通過曲線圖表直觀展示,本文分享一下開發(fā)過程中的核心技術(shù)點和關(guān)鍵代碼實現(xiàn),需要的朋友可以參考下
    2025-12-12
  • C#使用Socket實現(xiàn)心跳的方法示例

    C#使用Socket實現(xiàn)心跳的方法示例

    這篇文章主要介紹了C#使用Socket實現(xiàn)心跳的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • C#操作word的方法示例

    C#操作word的方法示例

    這篇文章主要介紹了C#操作word的方法,結(jié)合實例形式分析了C#針對word文檔的讀取、寫入、保存等相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • C#創(chuàng)建及訪問網(wǎng)絡(luò)硬盤的實現(xiàn)

    C#創(chuàng)建及訪問網(wǎng)絡(luò)硬盤的實現(xiàn)

    本文主要介紹了C#創(chuàng)建及訪問網(wǎng)絡(luò)硬盤的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C#登入實例

    C#登入實例

    本篇文章通過截圖的方式向大家展示C#程序登陸實現(xiàn)的全過程,利用了C#三層架構(gòu)的編寫方法,希望對大家今后編寫代碼有所幫助
    2016-11-11

最新評論

益阳市| 五华县| 内乡县| 许昌县| 靖西县| 策勒县| 普兰县| 德钦县| 南城县| 鲁甸县| 新兴县| 长丰县| 富锦市| 兴安盟| 渑池县| 定西市| 慈溪市| 尚志市| 沛县| 德江县| 新竹市| 化隆| 通辽市| 侯马市| 屯昌县| 新和县| 措美县| 林周县| 明水县| 祁门县| 吕梁市| 涪陵区| 钟祥市| 定南县| 东源县| 丘北县| 南安市| 镇江市| 长武县| 清水河县| 且末县|