Ответ 1
ToolTipService.ShowOnDisabled = "True"
Я пытаюсь показать всплывающую подсказку независимо от состояния кнопок, но это не похоже на трюк:
<Button Command="{Binding Path=CommandExecuteAction}"
ToolTip="{Binding Path=Description}" ToolTipService.ShowOnDisabled="true"
Style="{StaticResource toolbarButton}">
<Image Source="{Binding Path=Icon}"></Image>
</Button>
Как я могу показать всплывающую подсказку, когда кнопка отключена из-за команды .CanExecute возвращает false?
Примечание:
ToolTipService.ShowOnDisabled = "true" работает как шарм. Причина, по которой это не работает в моем примере, состоит в том, что стиль, связанный с кнопкой, переопределяет контрольную таблицу и отключает проверку нажатий на кнопку, когда кнопка была отключена (IsHitTestVisible = false). Повторное включение тестирования hit в контрольной таблице сделало всплывающую подсказку, когда кнопка была отключена.
ToolTipService.ShowOnDisabled = "True"
Это хороший способ добавить к вашему стартовому коду
ToolTipService.ShowOnDisabledProperty.OverrideMetadata(
typeof(Control),
new FrameworkPropertyMetadata(true));
Сделать подсказку видимой для ВСЕХ отключенных кнопок и флажков:
<Window.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="ToolTipService.ShowOnDisabled" Value="true"/>
</Style>
<Style TargetType="{x:Type CheckBox}">
<Setter Property="ToolTipService.ShowOnDisabled" Value="true"/>
</Style>
</Window.Resources>