2013-03-23 24 views
7

Tüm uygulama için ToolTipService.ShowOnDisabled = true'u etkinleştirmenin herhangi bir yolu var mı, yoksa WPF uygulamasında her bir denetim için manuel olarak ayarlamam gerekiyor mu?ToolTipService.ShowOnDisabled = tüm uygulama için true mümkün mü

Her kontrolün iyi bir çözüm olduğunu düşünmüyorum.

+0

Hep 'FrameworkElement', o görsel ağacındaki tüm elemanları için geçerli olmaz için bir Stil yaratabilirsiniz? –

cevap

7

Sen TooltipService.ShowOnDisabled için özellik meta geçersiz kılmak ve true (by default value is false) için varsayılan değeri ve uygulamanızda tüm denetimlere uygulanır olabilir.

Bu kodu koy App.xaml.cs -

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

Ths bir çözüm, harika bir çözüm sunuyor – sacha

0

VisualTreeHelper sınıfını (msdn) ve ToolTipService.SetShowOnDisabled (msdn) statik yöntemini kullanabilirsiniz.

Tüm öğeler arasında yinelemek ve ShowOnDisabled özelliğini True olarak ayarlamak için basit sınıf oluşturdum. kullanım

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); 
     } 
    } 
} 

Örnek:

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     ToolTipServiceHelper ttsh = new ToolTipServiceHelper(); 
     ttsh.EnumVisual(this.Content as Visual); 
    } 
} 
İlgili konular