0

私のWebサイトは、アプリケーションのxapファイルを使用してSilverlightアプリケーションを使用しています。ユーザーがSilverlightコントロールをクリックしたときに発生する「onclick」イベントをキャッチすることは可能ですか?これが発生したときにコントロールのみが表示されるように、画面の焦点を合わせ直したいと思います。

私はSilverlightコードとWebサイトコードの両方を制御できるので、どちらの方向からの解決策も同様に評価されます。

私はSilverlightを初めて使用するので、上記のいずれかが「n00b-y」と聞こえた場合は...そうですね。私を許して :)

4

1 に答える 1

1

App.xaml.csファイルのRootVisual割り当てステートメントを確認して、SilverlightアプリケーションのメインのXAMLファイルを見つけます。

private void Application_Startup(object sender, StartupEventArgs e)
{
    **this.RootVisual = new MainPage();**
}

デフォルトでは、MainPage.xaml.csがUserControlアプリケーションの起動時に最初に読み込まれます。

UserControl.MouseLeftButtonDownMainPageコンストラクターのイベントにイベントハンドラーをアタッチします

public MainPage()
{
    InitializeComponent();
    **this.MouseLeftButtonDown += MainPage_MouseLeftButtonDown;**
}

イベントハンドラーで、 Html Bridgeを使用してjavascriptメソッド「refocusScreen」を呼び出します(このメソッドを実装して画面のフォーカスを変更する必要があります)。

void MainPage_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    // About [Invoke][2] method
    **HtmlPage.Document.Invoke("refocusScreen");**

    // detach event handler so that this won't call the JS method everytime the Mouse left button goes down.
    this.MouseLeftButtonDown -= MainPage_MouseLeftButtonDown;
}
于 2011-05-26T22:24:55.043 に答える