2009-06-14 2 views
10

나는이 자산이 무엇을 위해 설계되었는지 결코 이해하지 못한다. 툴팁의 디자인이 눈에 띄게 바뀌 었음을 알 수 있습니다. Windows XP에서 System으로 설정하면 WinForms 스타일에 훨씬 더 잘 맞습니다.ToolStrip의 RenderMode 속성은 무엇이 다릅니 까?

여기에 더 깊은 의미가 있습니까? 컨트롤이 렌더링되는 방식이 전혀 변경되지 않고 어떤 모드를 사용하도록 권장합니까?

감사합니다.

답변

13

RenderMode 속성을 사용하면 개발자가 ToolStrip (또는 ContextMenu)의 표시를 정확하게 제어 할 수 있습니다. RenderMode를 ManagerRenderMode로 설정하면 ToolStrip의 모양을 사용자 정의 할 수있는 사용자 정의 렌더러를 만들 수 있습니다. 예를 들어, 아래의 코드는 ContextMenu의 항목 배경에 회색 그라디언트를 그려 넣습니다.

Class CustomProfessionalRenderer 
    Inherits ToolStripProfessionalRenderer 

    Protected Overrides Sub OnRenderMenuItemBackground(ByVal e As ToolStripItemRenderEventArgs) 
     Dim r As Rectangle = e.Item.ContentRectangle 

     If e.Item.Selected Then 
     Dim b = New LinearGradientBrush(r, Color.FromArgb(255, 227, 224, 215), Color.White, LinearGradientMode.Vertical) 
     Try 
      e.Graphics.FillRectangle(b, e.Item.ContentRectangle) 
     Finally 
      b.Dispose() 
     End Try 
     End If 
    End Sub 

End Class 

그냥 할 양식로드 이벤트, 또는 ToolStrip에 사용되기 전에 호출되어 다른 지역에, 당신은 당신의 ToolStrip에 사용자 정의 렌더러를 할당하는 것이 확인하십시오

myToolStrip.Renderer = New CustomProfessionalRenderer() 
+0

없이 작업을 수행하는 방법 모세 오버 이벤트 –

관련 문제