2016/08/22

xamlでエキスパンダーのヘッダーにツールチップ表示

拙作のスキン画面にあるエキスパンダー
<Expander Header="スキンフォルダ(_D)">
のヘッダーにツールチップを付けようとしたところ

<Expander Header="スキンフォルダ(_D)" ToolTip="なんたら">
では内部全体に付いてしまいました(当たり前)

<Expander>
  <Expander.Header>
    <TextBlock Text="スキンフォルダ(_D)" ToolTip="なんたら"/>
  </Expander.Header>
</Expander>
にしたらツールチップは思った通りにヘッダーに付きました(当たり前)
しかし スキンフォルダ(_D)と表示されてアクセスキー機能が働かなくなりました
アクセスキー(アクセラレータキー)とは
メニューバーの[ファイル(F)]とかのFの部分
通常はAlt+Fで選択されます 条件によってはAlt無しでも動きます
ちなみに[コピー(C) Ctrl+C]のCtrl+Cの部分はショートカットキーです
実際には何を使ってるのかをライブビジュアルツリー(VS2015の新機能 便利ですね)で見てみたところAccessTextとなっていました
ほとんどの場合AccessTextに自動でラップされるようで表に出てきませんが こういう場合は明示的に書く必要があります

で結局
<Expander>
  <Expander.Header>
    <AccessText Text="スキンフォルダ(_D)" ToolTip="なんたら"/>
  </Expander.Header>
</Expander>
にすればよいということです
テンプレート書く羽目になるかと思っていたので 簡単に解決してよかったです

0 件のコメント :

コメントを投稿