2011-05-26 184 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; 
} 
相關問題