Просто интересно, можно ли показать WPF на отключенном элементе ТОЛЬКО (а не когда элемент включен).Показать всплывающую подсказку WPF только для отключенного объекта
Я хотел бы дать пользователю подсказку, объясняющую, почему элемент в настоящее время отключен.
У меня есть IValueConverter
, чтобы инвертировать boolean IsEnabled
свойство binding. Но в этой ситуации это, похоже, не работает. 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" не выполняется "после" вашего обращения? Кажется, что необходимо только активированное связывание. – JustABill
@JustABill: Это может быть так, но это не работает без ToolTipService.ShowOnDisabled = "True". Возможно, мне нужно обработать его в коде. Я предпочел бы, если возможно, хранить файлы графического интерфейса в XAML. – dant
В этом случае я предлагаю вам привязать к Tooltip, например ToolTip = "{Binding ElementName = tabItem2, Path = IsEnabled, Converter = {StaticResource newconverter}, ConverterParameter = Фактический текст подсказки здесь}", где newconverter - новый тип, который возвращает значение в параметре, если значение истинно. Я думаю, что ложь в вашем случае. (Также я набрал это из памяти, так что простите меня, если синтаксис выключен) – JustABill