2011-05-26 129 views
0

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

我对Silverlight代码和网站代码都有控制权,所以从任一方向的解决方案都会得到同样的赞赏。

请注意,我对Silverlight非常陌生,所以如果上面的任何一个响起'n00b-y'......好吧,它是。请原谅我:)

+1

你需要你的silverlight控件来调用回调用javascript函数的页面。然后你可以做你想做的。 – 2011-05-26 21:01:24

回答

1

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

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; 
} 
相关问题