将 onClick 事件处理程序添加到 Silverlight 控件?

发布于 2024-11-10 09:13:48 字数 242 浏览 0 评论 0原文

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

我可以控制 silverlight 代码和网站代码,因此无论哪个方向的解决方案都将受到同样的赞赏。

请注意,我对 Silverlight 还很陌生,所以如果上面的任何一个听起来“n00b-y”……嗯,确实如此。对不起 :)

My web site consumes a silverlight application using the application's xap file. Is it possible to catch the 'onclick' event that occurs when the user clicks on the silverlight control? I would like to re-focus the screen so that only the control is visible when this happens.

I have control over both the silverlight code and the web site code, so a solution from either direction would be equally appreciated.

Please note that I am very new to Silverlight so if any of the above sounded 'n00b-y'... well, it was. Forgive me :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无所的.畏惧 2024-11-17 09:13:48

通过检查 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 桥

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;
}

Find out your main XAML file of your Silverlight application by checking the RootVisual assignment statement in App.xaml.cs file.

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

By default, MainPage.xaml.cs is the first UserControl to be loaded on Application Startup.

Attach an event handler to the UserControl.MouseLeftButtonDown event in the MainPage constructor

public MainPage()
{
    InitializeComponent();
    **this.MouseLeftButtonDown += MainPage_MouseLeftButtonDown;**
}

In the event hander, invoke your javascript method "refocusScreen" (you need to implement this method the re-focus the screen) using 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;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文