想知道是否可以在禁用物品上顯示WPF 僅限於(而不是在啓用物品時)。僅在禁用物品上顯示WPF工具提示
我想給用戶一個工具提示,解釋爲什麼一個項目當前被禁用。
我有一個IValueConverter
顛倒布爾IsEnabled
屬性綁定。但在這種情況下似乎並不奏效。該項目啓用和禁用時都顯示ToolTip
。
所以可以將ToolTip.IsEnabled
屬性專門綁定到物品本身! IsEnabled
?
很簡單的問題,我想,但在這裏,反正代碼示例:
public class BoolToOppositeBoolConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
if (targetType != typeof(bool))
throw new InvalidOperationException("The target must be a boolean");
return !(bool)value;
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
if (targetType != typeof(bool))
throw new InvalidOperationException("The target must be a boolean");
return !(bool)value;
}
#endregion
}
與結合:
<TabItem Header="Tab 2" Name="tabItem2" ToolTip="Not enabled in this situation." ToolTipService.ShowOnDisabled="True" ToolTipService.IsEnabled="{Binding Path=IsEnabled, ElementName=tabItem2, Converter={StaticResource oppositeConverter}}">
<Label Content="Item content goes here" />
</TabItem>
感謝鄉親。
您確定ToolTipService.ShowOnDisabled =「True」在您的反轉之後未執行「after」嗎?似乎只有啓用的綁定應該是必要的。 – JustABill 2010-05-23 16:03:38
@JustABill: 這可能是這種情況,但如果沒有ToolTipService.ShowOnDisabled =「True」,它將無法正常工作。 也許我需要在代碼隱藏中處理它。如果可能,我寧願在XAML中保留GUI。 – dant 2010-05-23 23:06:20
在這種情況下,我建議你綁定到Tooltip,如ToolTip =「{Binding ElementName = tabItem2,Path = IsEnabled,Converter = {StaticResource newconverter},ConverterParameter =實際工具提示文本在這裏}」,其中newconverter是一個新類型,如果值爲true,則爲參數中的值。或者我的猜想是假的。 (也是我從內存中輸入的,如果語法關閉,請原諒我) – JustABill 2010-05-24 02:35:27