问题描述
|
我的网站使用该应用程序的xap文件使用了Silverlight应用程序。是否可以捕获用户单击Silverlight控件时发生的“ onclick”事件?我想重新聚焦屏幕,以便在发生这种情况时仅控件可见。
我对Silverlight代码和网站代码都有控制权,因此从任何方向解决方案将同样受到赞赏。
请注意,我是Silverlight的新手,所以以上任何一个听起来都是'n00b-y \'...嗯,是的。原谅我 :)
解决方法
通过检查App.xaml.cs文件中的RootVisual分配语句,找出Silverlight应用程序的主要XAML文件。
private void Application_Startup(object sender,StartupEventArgs e)
{
**this.RootVisual = new MainPage();**
}
默认情况下,MainPage.xaml.cs是在应用程序启动时首先加载的“ 1”。
将事件处理程序附加到MainPage构造函数中的UserControl.MouseLeftButtonDown
事件
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;
}