2013-03-23 5 views
7

क्या पूरे एप्लिकेशन के लिए ToolTipService.ShowOnDisabled = true सक्षम करने का कोई तरीका है या क्या मुझे इसे अपने WPF एप्लिकेशन में मैन्युअल रूप से प्रत्येक नियंत्रण के लिए सेट करना है?क्या पूरे एप्लिकेशन के लिए ToolTipService.ShowOnDisabled = true को सक्षम करना संभव है

मुझे नहीं लगता कि हर नियंत्रण को पुनर्स्थापित करना एक अच्छा समाधान है।

+0

तुम हमेशा 'FrameworkElement', कि दृश्य पेड़ के सभी तत्वों के लिए लागू नहीं होगा के लिए एक शैली बना सकते हैं? –

उत्तर

7

आप TooltipService.ShowOnDisabled के लिए संपत्ति मेटाडाटा को ओवरराइड और true (by default value is false) को उसके डिफ़ॉल्ट मान सेट करने और उसे अपने आवेदन में सभी नियंत्रण के लिए लागू होगी कर सकते हैं।

में इस कोड रखो अपने App.xaml.cs -

static App() 
    { 
     ToolTipService.ShowOnDisabledProperty.OverrideMetadata(typeof(Control), 
        new FrameworkPropertyMetadata(true)); 
    } 
+1

Ths एक इलाज, महान समाधान काम करता है – sacha

0

आप VisualTreeHelper कक्षा (msdn) और स्थैतिक विधि ToolTipService.SetShowOnDisabled (msdn) का उपयोग कर सकते हैं।

मैंने सभी तत्वों के माध्यम से पुनरावृत्ति करने के लिए सरल वर्ग बनाया और ShowOnDisabled संपत्ति True पर सेट की। उपयोग के

class ToolTipServiceHelper 
{  
    public void EnumVisual(Visual myVisual) 
    { 
     for (int i = 0; i < VisualTreeHelper.GetChildrenCount(myVisual); i++) 
     { 
      Visual childVisual = (Visual)VisualTreeHelper.GetChild(myVisual, i);     
      ToolTipService.SetShowOnDisabled(childVisual, true); 
      EnumVisual(childVisual); 
     } 
    } 
} 

उदाहरण:

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     ToolTipServiceHelper ttsh = new ToolTipServiceHelper(); 
     ttsh.EnumVisual(this.Content as Visual); 
    } 
} 
संबंधित मुद्दे

 संबंधित मुद्दे