本文將解決一個常見問題:如何創建一個帶有文本的圓形控件,並說明如何克服透明度和大小調整等挑戰。
最初的挑戰在於創建一個與內接正方形寬度相同的圓形。調整圓形大小會導致與其他控件重疊。此外,控件的背景需要透明。
具有透明度的自定義控件
為了實現透明度,我們創建了一個從Control類派生的自定義控件。該界麵包含一個可以顯示文本的彩色圓圈。該控件公開了自定義屬性,用於設置不透明度、內部填充(內部矩形與控件邊界之間的距離)和字體填充(文本與內部矩形之間的距離)。
為了使控件透明,我們重寫了CreateParams方法,並將它的ExStyle設置為WS_EX_TRANSPARENT。
自定義樣式
我們使用Control.SetStyle()方法通過添加ControlStyles來修改控件行為:
處理鼠標事件
該控件支持用於拖動和調整大小的鼠標事件。
字體處理
字體硬編碼為Segoe UI,這簡化了文本在圓形區域中間的定位。其他字體具有不同的基線,需要更複雜的處理。
完整代碼
C#自定義控件的完整代碼已提供。
要使用該控件,請創建一個新的類文件,將提供的代碼粘貼到其中,然後構建項目。自定義控件將出現在工具箱中。將其拖放到窗體上,並根據需要調整其自定義屬性。
結果是一個帶有文本的半透明圓形控件,可以定位和調整大小,而不會與其他控件重疊。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3