1. ホーム
  2. wpf

[解決済み] wpf: ボタンがコマンドによって無効にされたとき、ツールチップを表示する方法は?

2022-04-15 22:45:09

質問

ボタンの状態に関係なくツールチップを表示させたいのですが、これではうまくいかないようです。

<Button Command="{Binding Path=CommandExecuteAction}" 
        ToolTip="{Binding Path=Description}" ToolTipService.ShowOnDisabled="true"
        Style="{StaticResource toolbarButton}">
   <Image Source="{Binding Path=Icon}"></Image>
</Button>

command.CanExecuteがfalseを返したためにボタンが無効になった場合、ツールチップを表示するにはどうすればよいですか?

注意

ToolTipService.ShowOnDisabled="true" は、魅力的なように動作します。私の例でこれが機能しなかった理由は、ボタンに関連付けられたスタイルがcontroltemplateを再定義し、ボタンが無効のときにボタンのヒットテストをオフにしていたからです(IsHitTestVisible=false)。controltemplateでヒットテストを再度有効にすると、ボタンが無効なときにツールチップが表示されるようになりました。

解決するには?

ToolTipService.ShowOnDisabled="True"。