所以我試圖做出一個很好的圓形開關,當點擊時它會左右滑動以基本打開或關閉某些東西(可用於其他事情)。我有一個矩形版本工作有點好(我有一些調整記住,我想爲它),但我遇到的問題是通過使用圓角矩形。我做了幾個班來幫助我的自我。我有一個叫RoundRectanglePath。使用Create方法,我給它一個Rectangle(或者x,y,w,h)和一個半徑,然後它返回一個封閉的GraphicsPath,然後我可以使用Graphics。[Fill | Draw] Path with。然後我有一個RoundRectangle類,它只是一個與標籤非常相似的控件。我發現,如果我重寫OnPaintBackground並且不將事件發送到底座,而是繪製與Parent.BackColor相同的顏色的矩形,而不是讓我感覺控件真的是圓的。 (作爲一個相關的附註,我允許透明)Windows窗體自定義控件沒有正確繪畫
對於我的RoundMovableSwitch類,我使用2個RoundRectanglePaths將控件分成兩半。左邊是一個綠色的顏色,右邊是粉紅色(想想現在我可以用一個水平的LinearGradient畫筆......哦,哦)然後我在相對的兩側畫出弦和絃。爲了控制我添加一個RoundRectangle。當用戶單擊RoundRectangle或MoveableSwitch時,控件會一次向左或向右移動1個像素的RoundRectangle。該運動效果很好。我遇到的問題是這個。 RoundRectangle的外部邊緣是正確的透明顏色。內邊緣是錯誤的顏色。請參閱下圖中的RoundMovingSwitch 1和2。一旦我的代碼正常工作,我將返回並重新組織代碼。
的代碼託管在GitHub上:Here
你展示的圖片是什麼,我想要的目的。這個問題似乎並不是在RoundRectangle大小發生變化時......但我會嘗試任何東西:) –
你已經做到了!!!!謝謝你,謝謝你,謝謝你 –