是否可以启用ToolTipService ?整个应用程序的ShowOnDisabled=true
本文关键字:应用程序 ShowOnDisabled true 启用 ToolTipService 是否 | 更新日期: 2023-09-27 18:05:40
是否有任何方法可以为整个应用程序启用ToolTipService.ShowOnDisabled = true
,或者我必须手动为WPF应用程序中的每个控件设置它?
我不认为重新设计每个控件的样式是一个好的解决方案。
您可以覆盖ToolTipService.ShowOnDisabled
的属性元数据,并将其默认值设置为true (by default value is false)
,它将应用于您的应用程序中的所有控件。
将此代码放入您的App.xaml.cs
static App()
{
ToolTipService.ShowOnDisabledProperty.OverrideMetadata(typeof(Control),
new FrameworkPropertyMetadata(true));
}
您可以使用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);
}
}