Добавление обработчика события onClick в элемент управления Silverlight? - PullRequest
0 голосов
/ 26 мая 2011

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

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

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

1 Ответ

1 голос
/ 27 мая 2011

Найдите свой основной 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;
}
...