是否有任何方法可以为整个应用程序启用ToolTipService.ShowOnDisabled = true
,或者是否必须手动为我的WPF应用程序中的每个单独控件设置它?是否可以为整个应用程序启用ToolTipService.ShowOnDisabled = true
我不认为重新设定每一个控件是一个很好的解决方案。
是否有任何方法可以为整个应用程序启用ToolTipService.ShowOnDisabled = true
,或者是否必须手动为我的WPF应用程序中的每个单独控件设置它?是否可以为整个应用程序启用ToolTipService.ShowOnDisabled = true
我不认为重新设定每一个控件是一个很好的解决方案。
您可以覆盖属性元数据TooltipService.ShowOnDisabled
和它的默认值设置为true (by default value is false)
,这将适用于所有的控件在您的应用程序。
将这个代码在你App.xaml.cs
-
static App()
{
ToolTipService.ShowOnDisabledProperty.OverrideMetadata(typeof(Control),
new FrameworkPropertyMetadata(true));
}
这是一个很好的解决方案 – sacha 2014-10-23 08:45:17
您可以使用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);
}
}
您可以随时创建'FrameworkElement',那不是适用于可视化树的所有元素的风格? – 2013-03-23 14:56:22