読者です 読者をやめる 読者になる 読者になる

VB.NETで作る!

VB.NETに関するあれこれ

WPF XButton1ClickとCommandをBindingする

XButtonって?

「XButton1」といってもいまいちピンときませんが、マウスの「戻る」ボタンといえば伝わりますでしょうか。ちなみにマウスの「進む」ボタンは「XButton2」というそうです。

XButton1押したら画面遷移「戻る」が走ってほしい

先ほどFrameを見た目をカスタマイズして、ちょっとモチベーションが上がったので、「んじゃ「XButton1」押したら画面遷移戻せるようにしようか」と思ったら意外と標準でできない…

ちなみに標準でできるのは「左、右、中央」ボタンの操作のみのよう(MouseAction 列挙体 (System.Windows.Input))で、書き方はこんな感じ。

<Window.InputBindings>
    <MouseBinding Gesture="LeftClick" Command="{Binding ElementName=MainFrame, Path=GoBackCommand}" />
</Window.InputBindings>

ウインドウ内で左クリックすると画面遷移「戻る」が発生するというトンデモなコードです…

MouseBindingを拡張するしかないっぽい

調べてみたところ、こちらのサイトが参考になりましたっていうかモロそれ。

MouseBinding Gesture for XButton1?

こちらによると、MouseBindingを拡張したら、こんな感じにかけるよとのこと。

<local:ExtendMouseBinding Gesture="XButton1Click" Command="{Binding ElementName=MainFrame, Path=GoBackCommand}" />

リンク先にMouseBindingを拡張するコード(C#)が全部載っていますので、ぜひご参考ください。

. .