是否有任何方法可以爲整個應用程序啓用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