有什么方法可以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);
}
}