none
Frame内のWebページの表示をスクロールさせる方法 RRS feed

  • 質問

  • はじめまして。

     

    Visual C# 2008でWPFのFrameクラスを使って、簡単なブラウザもどきをつくっています。

    まず、メインウィンドウにFrameコントロールを配置して、

    Frame内にWebページを表示させることはできました。

    次に、メインウィンドウとは別にPageDown用ボタンを持つリモコン用ウィンドウを作り、

    このPageDownボタンを押したときにFrameコントロールに表示された

    Webページを1ページ分移動させたいと考えています。

     

    3つほど方法を考えてみましたが、うまくいきません。

    1. FrameコントロールからScrollViewer またはScrollBarクラスのオブジェクトを探して、ハンドル経由でスクロール操作を行う。
      • ハンドルを検索する方法が分かりませんでした。
    2. メインウィンドウにフォーカスを与えた後、(キーボードの)PageDownキー押下・押下解除の2つのイベントを投げる。キーボードのイベントを発生させる方法として、下記の2つを考えました。
      • DllImportを使いWin32 APIのkeybd_eventをインポートしてVK_NEXT(0x22)イベントを投げてみました。しかし、Spy++によるとイベントは投げられていることは確認できましたが、メインウィンドウ内のFrameは全く反応しません。
      • フォーカスを与えた後、Windows.FormsのSendKeys.SendWaitを使ってみましたが、IOExceptionが発生して動作しませんでした。
    3. System.Windows.FormsまたはSystem.Windows.InputのKeyEventArgsを使ってイベントハンドラを直接呼び出す。
      • イベント変数・イベントハンドラの設定の仕方が分からず試していません。

    C#を初めて実質2週間程度なので、知識不足があると思いますが、

    正直考えあぐねているので、ヒントを与えていただけると有り難いです。

    よろしくお願いいたします。
    2008年2月27日 14:58