none
WebBrowserでスクロールの跳ね返りアクションを止める方法 RRS feed

  • 質問

  • WindowsフォームのWebBrowserを使い、
    Windows8タブレット向けのアプリを作成しています。

    スクロールバーで画面の端まで行くと
    跳ね返るアクションが発生しますが、
    これを止める方法をご教示頂けないでしょうか?

    -ms-touch-action:none でタッチアクションを
    無効にすれば回避できますが、
    この方法では、スクロールバーを使っている画面で、
    タッチアクションによるスクロールが出来なくなってしまいます。


    跳ね返るアクションを止めたい理由は、
    画面上部または画面下部で、当アクションが発生すると、
    戻した時に、稀に残像が発生してしまいます。


    以上、どうぞよろしくお願いいたします。
    2014年12月13日 10:55

すべての返信

  • 「跳ね返るアクション」はWebBrowser特有のものではなくて、Explorerなど全てのアプリケーションで行われているものではないでしょうか? それを自分のアプリだけ停止したいというのはどうかなと思います。

    ちなみにLegacy Input Modelはどちらに設定されていますでしょうか? 既定でenabledであり「Hardware accelerated panning and zooming is disabled.」だそうです。disableにすることでnew input modelに動作が切り替わりますがそれに伴いGPUでの処理に切り替わり、残像も発生しなくなるかもしれません。

    2014年12月14日 2:05
  • 佐祐理さん

    ご回答ありがとうございます。

    おっしゃる通り、Explorer等の共通アクションです。


    今回、HTML5にて作成したアプリを動作させたいと考えており、
    Windowsフォーム内でWebBrowserを最大表示させて、
    利用者にはブラウザを意識させない作りにしたいと思っています。

    跳ね返りアクションも、当アプリには不要な動きなので、
    可能であれば無くしたいです。


    「Legacy Input Model」は、0(disabled)にしていました。
    (別件の対応にて)

    1(enabled)にすると、ブラウザ内での
    跳ね返りアクションは無くなりました!


    ですが、今度は、フルスクリーン表示している
    WindowsForm側で、跳ね返りアクションが発生してしまいます。
    (Explorer等のスクロールバーと同じ動き=共通アクション)


    もし、特定のアプリだけ、もしくは、当アプリが起動している間、
    Explorer等も含め、跳ね返りアクションを抑制する方法があれば、
    ご教示頂けますでしょうか?


    佐祐理さんが冒頭に書かれている、
    「自分のアプリだけ停止するのはどうかなと思います」
    という意見を理解した上で、顧客の要望を叶えることができればと思います。
    2014年12月15日 1:22