【问题标题】:Adding onClick event handler to Silverlight control?将 onClick 事件处理程序添加到 Silverlight 控件?
【发布时间】:2011-05-26 18:11:30
【问题描述】:

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

我对 silverlight 代码和网站代码都有控制权,因此我们同样感谢您提供任一方向的解决方案。

请注意,我是 Silverlight 的新手,所以如果上述任何一个听起来“n00b-y”......好吧,确实如此。原谅我:)

【问题讨论】:

  • 您需要使用silverlight 控件来调用调用javascript 函数的页面。然后你就可以为所欲为。

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


【解决方案1】:

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

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

默认情况下,MainPage.xaml.cs 是第一个在应用程序启动时加载的UserControl

将事件处理程序附加到 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;
}

【讨论】:

    猜你喜欢
    • 2012-06-09
    • 2021-02-26
    • 2018-08-24
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多