2009-06-14 9 views
10

मुझे कभी समझ में नहीं आया कि यह संपत्ति किस लिए डिज़ाइन की गई थी। मैं देख सकता हूं कि यह टूलस्ट्रिप के डिज़ाइन को स्पष्ट रूप से बदलता है और मुझे लगता है कि इसे विंडोज एक्सपी पर सिस्टम में सेट करने से यह WinForms शैली के साथ बेहतर हो जाता है।टूलस्ट्रिप की रेंडरमोड संपत्ति के साथ क्या सौदा है?

क्या यहां कुछ गहरा अर्थ है? क्या जिस तरीके से नियंत्रण प्रदान किया जाता है, वैसे ही आप किस मोड का उपयोग करने की सलाह देंगे?

धन्यवाद।

उत्तर

13

रेंडरमोड प्रॉपर्टी डेवलपर को टूलस्ट्रिप (या कॉन्टेक्स्टमेनू) के प्रदर्शन को सटीक रूप से नियंत्रित करने की अनुमति देती है। जब आप RenderMode को ManagerRenderMode पर सेट करते हैं, तो आप कस्टम रेंडरर बना सकते हैं जो आपको टूलस्ट्रिप के रूप को अनुकूलित करने की अनुमति देगा। उदाहरण के लिए, नीचे दिया गया कोड एक ग्रे ग्रेडिएंट को एक कॉन्टेक्स्टमेनू में किसी आइटम की पृष्ठभूमि के रूप में खींचता है जिसमें वर्तमान में माउस है।

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

कैसे बिना यह करने के लिए घटना पर मोस –