有没有办法为整个应用程序启用ToolTipService.ShowOnDisabled = true
,还是必须手动为我的WPF应用程序中的每个控件设置它?
我不认为重新设计每个控件都是一个很好的解决方案。
答案 0 :(得分:8)
您可以覆盖ToolTipService.ShowOnDisabled
的属性元数据,并将其默认值设置为true (by default value is false)
,它将应用于您应用中的所有控件。
将此代码放入App.xaml.cs
static App()
{
ToolTipService.ShowOnDisabledProperty.OverrideMetadata(typeof(Control),
new FrameworkPropertyMetadata(true));
}
答案 1 :(得分: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);
}
}