Winforms中有更改ToolStrip項目形狀的方法。如果它是一個面板,我可以將該區域設置爲我的GraphicPath對象。但是對於ToolStripItem,我不知道該怎麼做,因爲它不是從Control派生的。 alt text http://store.ezburn.com/images/productimages/toolstripbuttonshapes.jpg如何在ToolStripItem上設置區域的等效項目
0
A
回答
0
您需要創建自己的ToolStripRenderer,並在代碼中繪製按鈕。採用這種方法,您可以模擬任何形狀,並且幾乎可以模擬任何形狀。
然後,自定義渲染器完成後,您將需要將您的渲染器分配給tooltrip,就是這樣。
描述寫入自定義渲染器的article。
更新:您還可以檢查this article,它可以爲您的任務有用。
0
我想這是可能的,在仲裁員的帖子看到第二個鏈接後,但我會保持我的解決方案。由於時間限制,時間很短,我已將控制類型更改爲普通按鈕。在這裏,我可以設置區域,並通過將區域設置爲我稱之爲人字形路徑的方式來重現所需的外觀。最上面的兩個按鈕是從Windows.Forms.Button派生的,具有自定義繪畫和區域設置。底部的兩個按鈕是具有自定義渲染器和自定義繪畫的工具條按鈕。
alt text http://store.ezburn.com/images/productimages/toolstripbuttonshapes-final.jpg
我不知道這是否會有助於任何人。但這裏是我用來設置區域的代碼:
Private Sub setRegion()
Dim r As Rectangle = ClientRectangle
Me.Region = New Region(getChevronPath(r.X, r.Y, r.Width, r.Height))
End Sub
Private Function getChevronPath(ByVal X As Single, ByVal Y As Single, _
ByVal width As Single, ByVal height As Single) As GraphicsPath
Dim w As Integer = Convert.ToInt32(X + width - ChevronHeight)
Dim hh As Integer = Convert.ToInt32(height/2)
Dim gp As New GraphicsPath()
'top
gp.AddLine(X, Y, w, Y)
'arrowtop, on the right
gp.AddLine(w, Y, w + ChevronHeight, hh)
'arrowbottom, on the right
gp.AddLine(w + ChevronHeight, hh, w, Y + height)
'bottom
gp.AddLine(w, Y + height, X, Y + height)
If EndButton Then
'left
gp.AddLine(X, Y + height, X, Y)
Else
'arrowbottom, on the left
gp.AddLine(X, Y + height, ChevronHeight, hh)
'arrowtop on the left
gp.AddLine(ChevronHeight, hh, X, Y)
End If
gp.CloseFigure()
Return gp
End Function
相關問題
- 1. Xcode 7 UI測試目標區域設置和區域設置
- 2. 如何在運行在Mac上的TeamCity代理上設置區域設置?
- 3. 如何在mapview上使項目的onTap區域變得豐富?
- 4. 如何在文本區域設置值
- 5. 如何在集成測試的默認url選項中設置區域設置
- 6. 如何在舊的Facebook Connect API上設置FBML的區域設置?
- 7. Sencha觸摸如何在選擇區域中設置選定項目
- 8. 如何在android中設置不同的區域設置?
- 9. 如何更改DatePickerDialog的區域設置?
- 10. 如何設置兩個區域的BorderContainer?
- 11. 如何確定區域內的區域設置
- 12. 如何設置Google地理區域的區域顏色?
- 13. FlexBuilder中等效的Visual Studio區域
- 14. 如何在NSButton上設置等效於Enter/Return鍵?
- 15. 在MKMapView設置區域
- 16. 區域設置在Excel
- 17. Django自定義區域設置目錄
- 18. 如何爲python應用程序的所有子項設置區域設置?
- 19. 如何在AS3中正確設置區域設置
- 20. Sharepoint區域設置
- 21. Sharepoint - 區域設置
- 22. MKMapView設置區域
- 23. 如何在自定義DropDown功能區控件上設置選定的項目
- 24. 用Visual Studio 2010設置多個項目區域,ASP.NET MVC 2.0
- 25. Rails i18n區域設置和區域
- 26. 黑莓設置剪輯區域/區域
- 27. 如何使用類或區域設置?
- 28. 如何更改RactiveJs區域設置
- 29. 如何設置可空區域對象
- 30. 如何定義區域設置範圍?
嗨,謝謝。我已經完成了。按鈕的形狀可以有不同的繪製方式,但在工具條上,它總是佔據一個矩形區域。我將在上面編輯以提供當前圖像。 – bperreault 2009-06-23 15:03:36
嗨 感謝您的第二個鏈接,這很有趣。我看到它是如何做到的。 – bperreault 2009-06-23 17:38:10