Добавление обработчика события onClick в элемент управления Silverlight?

Мой веб-сайт использует приложение Silverlight, использующее файл xap приложения. Можно ли поймать событие onclick, которое происходит, когда пользователь нажимает на элемент управления silverlight? Я хотел бы перефокусировать экран, чтобы в этом случае был виден только элемент управления.

У меня есть контроль как над кодом silverlight, так и над кодом веб-сайта, поэтому решение в любом направлении будет одинаково оценено.

Обратите внимание, что я новичок в Silverlight, поэтому, если что-то из вышеперечисленного звучало как «n00b-y» ... ну, так оно и было. Простите меня :)


person badpanda    schedule 26.05.2011    source источник
comment
вам нужен элемент управления silverlight, чтобы выполнить обратный вызов на страницу, вызывающую функцию javascript. Тогда вы сможете делать то, что хотите.   -  person Dustin Davis    schedule 27.05.2011


Ответы (1)


Найдите свой основной файл XAML вашего приложения Silverlight, проверив оператор присваивания RootVisual в файле App.xaml.cs.

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

По умолчанию MainPage.xaml.cs является первым UserControl, загружаемым при запуске приложения.

Прикрепите обработчик события к событию UserControl.MouseLeftButtonDown в конструкторе MainPage

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

В случае обработки события вызовите свой метод javascript "refocusScreen" (вам необходимо реализовать этот метод для перефокусировки экрана), используя HTML Bridge

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;
}
person Samir    schedule 26.05.2011