将onClick事件处理程序添加到Silverlight控件?

时间:2011-05-26 18:11:30

标签: c# asp.net silverlight-3.0 xap

我的网站使用应用程序的xap文件使用silverlight应用程序。是否有可能捕获用户点击silverlight控件时发生的'onclick'事件?我想重新聚焦屏幕,以便在发生这种情况时只能看到控件。

我可以控制Silverlight代码和网站代码,因此同样可以从任何一个方向获得解决方案。

请注意我对Silverlight很新,所以如果以上任何一个听起来'n00b-y'......好吧,那就是。原谅我:)

1 个答案:

答案 0 :(得分:1)

通过检查App.xaml.cs文件中的RootVisual赋值语句,找出Silverlight应用程序的主要XAML文件。

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

默认情况下,MainPage.xaml.cs是在Application Startup上加载的第一个UserControl

将事件处理程序附加到MainPage构造函数中的UserControl.MouseLeftButtonDown事件

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

在hander事件中,使用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;
}