我的网站使用应用程序的xap文件使用silverlight应用程序。是否有可能捕获用户点击silverlight控件时发生的'onclick'事件?我想重新聚焦屏幕,以便在发生这种情况时只能看到控件。
我可以控制Silverlight代码和网站代码,因此同样可以从任何一个方向获得解决方案。
请注意我对Silverlight很新,所以如果以上任何一个听起来'n00b-y'......好吧,那就是。原谅我:)
答案 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;
}