11

有什么方法可以ToolTipService.ShowOnDisabled = true为整个应用程序启用,还是我必须手动为我的 WPF 应用程序中的每个控件设置它?

我不认为重新设计每个控件是一个好的解决方案。

4

2 回答 2

11

您可以覆盖属性元数据ToolTipService.ShowOnDisabled并将其默认值设置为true (by default value is false),它将应用于应用程序中的所有控件。

将此代码放入您的App.xaml.cs

static App()
{
    ToolTipService.ShowOnDisabledProperty.OverrideMetadata(typeof(Control),
              new FrameworkPropertyMetadata(true)); 
}
于 2013-03-23T15:58:45.623 回答
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);
    }
}
于 2013-03-23T15:50:07.117 回答