有没有办法在Silverlight中创建全局键?我在最上面的Page元素中添加了一个KeyDown事件处理程序。当Button,TextBox,Calendar和RichTextBox等元素具有焦点时,我可以捕捉到关键信号。但DatePicker不会让我处理Page级别的关键事件。任何方式在非OOB SL中制作热键?Silverlight中的热键?
P.S.我假设DatePicker控件的行为与其他人不同,因为它仍在Silverlight Toolkit中。
有没有办法在Silverlight中创建全局键?我在最上面的Page元素中添加了一个KeyDown事件处理程序。当Button,TextBox,Calendar和RichTextBox等元素具有焦点时,我可以捕捉到关键信号。但DatePicker不会让我处理Page级别的关键事件。任何方式在非OOB SL中制作热键?Silverlight中的热键?
P.S.我假设DatePicker控件的行为与其他人不同,因为它仍在Silverlight Toolkit中。
您是否尝试过使用AddHandler方法?使用这种方法,您可以添加处理程序并定义是否要处理已处理的事件。
在我的简单示例中,我将它添加到app.xaml.c的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
是的 - 这应该工作,除非重点在于Popup中的控件,在这种情况下RootVisual不会获得该事件。 – RobSiklos
This可以帮助你。作者提供了两种使用HTML桥(当你的Silverlight没有焦点时)和使用Application.RootVisual上的KeyUp事件的方法。
我还没有尝试过自己,所以我不知道它是否工作。
@ user246392 - 你有机会看看这个:http://msdn.microsoft.com/en-us/library/cc189015%28VS.95%29.aspx –