Silverlight 中的热键?

发布于 2024-11-16 11:35:54 字数 250 浏览 4 评论 0原文

有没有办法在 Silverlight 中创建全局密钥?我向最顶部的 Page 元素添加了一个 KeyDown 事件处理程序。当 Button、TextBox、Calendar 和 RichTextBox 等元素获得焦点时,我可以捕获关键信号。但是 DatePicker 不允许我在页面级别处理按键按下事件。有什么方法可以在非 OOB SL 中制作热键吗?

PS 我假设 DatePicker 控件的行为与其他控件不同,因为它仍然位于 Silverlight 工具包中。

Is there a way to create global keys in Silverlight? I added a KeyDown event handler to the topmost Page element. I can catch the key signal when elements like a Button, TextBox, Calendar, and RichTextBox have focus. But the DatePicker won't let me handle the key down event at the Page level. Any way to make a hotkey in non-OOB SL?

P.S. I am assuming that the DatePicker control behaves differently than others as it is still in the Silverlight Toolkit.

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

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

发布评论

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

评论(2

琉璃繁缕 2024-11-23 11:35:54

您是否尝试过使用 AddHandler 方法?使用此方法,您可以添加处理程序并定义是否也想处理已处理的事件。

在我的简单示例中,我将其添加到 app.xaml.cs 中的 RootVisual 中。

private void Application_Startup(object sender, StartupEventArgs e)
        {
            this.RootVisual = new MainPage();
            RootVisual.AddHandler(UIElement.KeyDownEvent, new KeyEventHandler(HandleKeyDown), true);
        }

        private void HandleKeyDown(object sender, KeyEventArgs e)
        {
            //Add your keyhandling code here
            Debug.WriteLine(e.Key);
        }

我用 DatePicker 尝试过,它有效。

希望这有帮助!

BR、

TJ

have you tried using the AddHandler method? With this method you can add a handler and define if you want to handle already handled events, too.

In my simple example I added it to the RootVisual in the app.xaml.cs.

private void Application_Startup(object sender, StartupEventArgs e)
        {
            this.RootVisual = new MainPage();
            RootVisual.AddHandler(UIElement.KeyDownEvent, new KeyEventHandler(HandleKeyDown), true);
        }

        private void HandleKeyDown(object sender, KeyEventArgs e)
        {
            //Add your keyhandling code here
            Debug.WriteLine(e.Key);
        }

I tried it with a DatePicker and it works.

Hope this helps!

BR,

TJ

情场扛把子 2024-11-23 11:35:54

可能对您有帮助。作者提供了两种方法:使用 HTML 桥(当您的 Silverlight 没有焦点时)和使用 Application.RootVisual

我自己没有尝试过,所以我不知道它是否有效。

This may help you. The author provides two ways using HTML bridge (when your Silverlight does not have focus) and using the KeyUp event on Application.RootVisual.

I have not tried it myself so I wouldn't know if it's working.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文