Есть ли что-то подобное в компонентах .NET, а если нет, то как его воспроизвести?ToolStrip LineStyles .Net
alt text http://lh6.ggpht.com/_1TPOP7DzY1E/S9Ap9jAPheI/AAAAAAAADK0/rNwXMyz0I9U/s800/Capture8.png
Спасибо!
Есть ли что-то подобное в компонентах .NET, а если нет, то как его воспроизвести?ToolStrip LineStyles .Net
alt text http://lh6.ggpht.com/_1TPOP7DzY1E/S9Ap9jAPheI/AAAAAAAADK0/rNwXMyz0I9U/s800/Capture8.png
Спасибо!
Нет такого контроля, но ToolStripControlHost Class позволит вам создать свои собственные элементы управления ToolStrip.
Update: Проверьте этот класс я быстро соорудил
Public Class LineStyleMenuItem
Inherits Windows.Forms.ToolStripMenuItem
Private style As Drawing2D.DashStyle
Public Property LineStyle() As Drawing2D.DashStyle
Get
Return style
End Get
Set(ByVal value As Drawing2D.DashStyle)
style = value
End Set
End Property
Public Sub New(ByVal style As Drawing2D.DashStyle)
Me.style = style
End Sub
Private Sub LineStyleMenuItem_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
Const line_width As Integer = 6
Const padding As Integer = 6
Dim y As Single = CSng((Me.Height/2) - (line_width/2))
Dim p As New Drawing.Pen(Color.Black, line_width)
p.DashStyle = style
e.Graphics.DrawLine(p, padding, y, Me.Width - padding, y)
p.Dispose()
End Sub
End Class
Вы можете использовать его путем добавления элементов в элементе управления ToolStrip Dropdown:
dropdownbutton.DropDownItems.Add(New LineStyleMenuItem(Drawing2D.DashStyle.Dash))
dropdownbutton.DropDownItems.Add(New LineStyleMenuItem(Drawing2D.DashStyle.DashDot))
dropdownbutton.DropDownItems.Add(New LineStyleMenuItem(Drawing2D.DashStyle.DashDotDot))
dropdownbutton.DropDownItems.Add(New LineStyleMenuItem(Drawing2D.DashStyle.Dot))
dropdownbutton.DropDownItems.Add(New LineStyleMenuItem(Drawing2D.DashStyle.Solid))
и доступ к Clicked стиль элемента следующим образом:
Private Sub dropdownbutton_DropDownItemClicked(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles dropdownbutton.DropDownItemClicked
MsgBox(CType(e.ClickedItem, LineStyleMenuItem).LineStyle)
End Sub
интересный. Тем не менее, перед хостингом я должен сначала создать что-то для хоста :) – serhio
Да, это идея. Забавно, я не нахожу каких-либо инструментов селектора стиля, что означает, что никто в обществе еще не сделал этого. Возможно, combobox с настраиваемыми элементами ... – invert