【C#】Region、Exclude的用法

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

一、Region?的用法

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

1. 創建 Region 的方式:

using System.Drawing;// 1. 從矩形創建
Rectangle rect = new Rectangle(10, 10, 100, 100);
Region region1 = new Region(rect);// 2. 從橢圓創建
GraphicsPath path = new GraphicsPath();
path.AddEllipse(20, 20, 80, 80);
Region region2 = new Region(path);// 3. 從 GraphicsPath 創建復雜形狀
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 類的一個方法,用于從當前區域中移除另一個區域,即執行“差集”操作。

方法簽名:

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

示例:

// 創建一個大矩形區域
Region bigRegion = new Region(new Rectangle(0, 0, 200, 200));// 創建一個小矩形區域(要排除的部分)
Rectangle hole = new Rectangle(50, 50, 100, 100);// 從小區域中“挖掉”一個洞
bigRegion.Exclude(hole);// 現在 bigRegion 是一個外框為 200x200,中間有 100x100 空洞的區域

實際應用場景:

創建非矩形窗體的透明區域

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

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

繪制時排除某些區域不重繪

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

三、注意事項

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

四、總結

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

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

五、擴展

【C#】GraphicsPath的用法文章瀏覽閱讀449次,點贊3次,收藏6次。【C#】GraphicsPath的用法_c# graphicspath 對象說明 https://blog.csdn.net/wangnaisheng/article/details/149226810?spm=1011.2415.3001.5331【C#】 使用GDI+獲取兩個多邊形區域相交、非相交區域文章瀏覽閱讀753次。【C#】 使用GDI+獲取兩個多邊形區域相交、非相交區域_c# 圖形相交區域 https://blog.csdn.net/wangnaisheng/article/details/140527315?spm=1011.2415.3001.5331

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/93238.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/93238.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/93238.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習 - Kaggle項目實踐(3)Digit Recognizer 手寫數字識別

Digit Recognizer | Kaggle 題面 Digit Recognizer-CNN | Kaggle 下面代碼的kaggle版本 使用CNN進行手寫數字識別 學習到了網絡搭建手法學習率退火數據增廣 提高訓練效果。 使用混淆矩陣 以及對分類出錯概率最大的例子單獨拎出來分析。 最終以99.546%正確率 排在 86/1035 …

新手如何高效運營亞馬遜跨境電商:從傳統SP廣告到DeepBI智能策略

"為什么我的廣告點擊量很高但訂單轉化率卻很低?""如何避免新品期廣告預算被大詞消耗殆盡?""為什么手動調整關鍵詞和出價總是慢市場半拍?""競品ASIN投放到底該怎么做才有效?""有沒有…

【論文閱讀 | CVPR 2024 | UniRGB-IR:通過適配器調優實現可見光-紅外語義任務的統一框架】

論文閱讀 | CVPR 2024 | UniRGB-IR:通過適配器調優實現可見光-紅外語義任務的統一框架?1&&2. 摘要&&引言3.方法3.1 整體架構3.2 多模態特征池3.3 補充特征注入器3.4 適配器調優范式4 實驗4.1 RGB-IR 目標檢測4.2 RGB-IR 語義分割4.3 RGB-IR 顯著目…

Hyperf 百度翻譯接口實現方案

保留 HTML/XML 標簽結構,僅翻譯文本內容,避免破壞富文本格式。采用「HTML 解析 → 文本提取 → 批量翻譯 → 回填」的流程。百度翻譯集成方案:富文本內容翻譯系統 HTML 解析 百度翻譯 API 集成 文件結構 app/ ├── Controller/ │ └──…

字節跳動 VeOmni 框架開源:統一多模態訓練效率飛躍!

資料來源:火山引擎-開發者社區 多模態時代的訓練痛點,終于有了“特效藥” 當大模型從單一語言向文本 圖像 視頻的多模態進化時,算法工程師們的訓練流程卻陷入了 “碎片化困境”: 當業務要同時迭代 DiT、LLM 與 VLM時&#xff0…

配置docker pull走http代理

之前寫了一篇自建Docker鏡像加速器服務的博客,需要用到境外服務器作為代理,但是一般可能沒有境外服務器,只有http代理,所以如果本地使用想走代理可以用以下方式 臨時生效(只對當前終端有效) 設置環境變量…

OpenAI 開源模型 gpt-oss 本地部署詳細教程

OpenAI 最近發布了其首個開源的開放權重模型gpt-oss,這在AI圈引起了巨大的轟動。對于廣大開發者和AI愛好者來說,這意味著我們終于可以在自己的機器上,完全本地化地運行和探索這款強大的模型了。 本教程將一步一步指導你如何在Windows和Linux…

力扣-5.最長回文子串

題目鏈接 5.最長回文子串 class Solution {public String longestPalindrome(String s) {boolean[][] dp new boolean[s.length()][s.length()];int maxLen 0;String str s.substring(0, 1);for (int i 0; i < s.length(); i) {dp[i][i] true;}for (int len 2; len …

Apache Ignite超時管理核心組件解析

這是一個非常關鍵且設計精巧的 定時任務與超時管理組件 —— GridTimeoutProcessor&#xff0c;它是 Apache Ignite 內核中負責 統一調度和處理所有異步超時事件的核心模塊。&#x1f3af; 一、核心職責統一管理所有需要“在某個時間點觸發”的任務或超時邏輯。它相當于 Ignite…

DAY 42 Grad-CAM與Hook函數

知識點回顧回調函數lambda函數hook函數的模塊鉤子和張量鉤子Grad-CAM的示例# 定義一個存儲梯度的列表 conv_gradients []# 定義反向鉤子函數 def backward_hook(module, grad_input, grad_output):# 模塊&#xff1a;當前應用鉤子的模塊# grad_input&#xff1a;模塊輸入的梯度…

基于 NVIDIA 生態的 Dynamo 風格分布式 LLM 推理架構

網羅開發&#xff08;小紅書、快手、視頻號同名&#xff09;大家好&#xff0c;我是 展菲&#xff0c;目前在上市企業從事人工智能項目研發管理工作&#xff0c;平時熱衷于分享各種編程領域的軟硬技能知識以及前沿技術&#xff0c;包括iOS、前端、Harmony OS、Java、Python等方…

《吃透 C++ 類和對象(中):拷貝構造函數與賦值運算符重載深度解析》

&#x1f525;個人主頁&#xff1a;草莓熊Lotso &#x1f3ac;作者簡介&#xff1a;C研發方向學習者 &#x1f4d6;個人專欄&#xff1a; 《C語言》 《數據結構與算法》《C語言刷題集》《Leetcode刷題指南》 ??人生格言&#xff1a;生活是默默的堅持&#xff0c;毅力是永久的…

Python 環境隔離實戰:venv、virtualenv 與 conda 的差異與最佳實踐

那天把項目部署到測試環境&#xff0c;結果依賴沖突把服務拉崩了——本地能跑&#xff0c;線上不能跑。折騰半天才發現&#xff1a;我和同事用的不是同一套 site-packages&#xff0c;版本差異導致運行時異常。那一刻我徹底明白&#xff1a;虛擬環境不是可選項&#xff0c;它是…

[ 數據結構 ] 時間和空間復雜度

1.算法效率算法效率分析分為兩種 : ①時間效率, ②空間效率 時間效率即為 時間復雜度 , 時間復雜度主要衡量一個算法的運行速度空間效率即為 空間復雜度 , 空間復雜度主要衡量一個算法所需要的額外空間2.時間復雜度2.1 時間復雜度的概念定義 : 再計算機科學中 , 算法的時間復雜…

一,設計模式-單例模式

目的設計單例模式的目的是為了解決兩個問題&#xff1a;保證一個類只有一個實例這種需求是需要控制某些資源的共享權限&#xff0c;比如文件資源、數據庫資源。為該實例提供一個全局訪問節點相較于通過全局變量保存重要的共享對象&#xff0c;通過一個封裝的類對象&#xff0c;…

AIStarter修復macOS 15兼容問題:跨平臺AI項目管理新體驗

AIStarter是全網唯一支持Windows、Mac和Linux的AI管理平臺&#xff0c;為開發者提供便捷的AI項目管理體驗。近期&#xff0c;熊哥在視頻中分享了針對macOS 15系統無法打開AIStarter的修復方案&#xff0c;最新版已完美兼容。本文基于視頻內容&#xff0c;詳解修復細節與使用技巧…

LabVIEW 紡織檢測數據傳遞

基于 LabVIEW 實現紡織檢測系統中上位機&#xff08;PC 機&#xff09;與下位機&#xff08;單片機&#xff09;的串口數據傳遞&#xff0c;成功應用于煮繭機溫度測量系統。通過采用特定硬件架構與軟件設計&#xff0c;實現了溫度數據的高效采集、傳輸與分析&#xff0c;操作簡…

ECCV-2018《Variational Wasserstein Clustering》

核心思想 該論文提出了一個基于最優傳輸(optimal transportation) 理論的新型聚類方法&#xff0c;稱為變分Wasserstein聚類(Variational Wasserstein Clustering, VWC)。其核心思想有三點&#xff1a;建立最優傳輸與k-means聚類的聯系&#xff1a;作者指出k-means聚類問題本質…

部署 Docker 應用詳解(MySQL + Tomcat + Nginx + Redis)

文章目錄一、MySQL二、Tomcat三、Nginx四、Redis一、MySQL 搜索 MySQL 鏡像下載 MySQL 鏡像創建 MySQL 容器 docker run -i -t/d -p 3307:3306 --namec_mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD123456 m…

VR全景導覽在大型活動中的應用實踐:優化觀眾體驗與現場管理

大型演出賽事往往吸引海量觀眾&#xff0c;但復雜的場館環境常帶來諸多困擾&#xff1a;如何快速找到座位看臺區域&#xff1f;停車位如何規劃&#xff1f;附近公交地鐵站在哪&#xff1f;這些痛點直接影響觀眾體驗與現場秩序。VR全景技術為解決這些問題提供了有效方案。通過在…