我一直试图在Silverlight应用程序中处理UserControl(页面)的KeyDown事件,但Silverlight用户输入功能似乎存在一些奇怪的行为。在任何情况下事件都没有得到提升。我甚至试图将事件处理程序附加到UserControl中的每个容器控件,但仍然没有运气。事实上,Silverlight用户输入的“事件路由”系统是相当新颖的,对我来说似乎很奇怪,所以也许这只是我的一个误解,尽管我对如何继续处理毫无头绪。Silverlight页面无法捕捉输入事件
以下代码是我正在测试的特定页面的模板。
<UserControl x:Class="MyNamespace.CreditsPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
KeyDown="UserControl_KeyDown">
<Grid x:Name="LayoutRoot">
<Border>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Vertical">
<TextBlock TextAlignment="Center">
A line of text.<LineBreak />
<LineBreak />
A line of text.<LineBreak />
<LineBreak />
A line of text.<LineBreak />
<LineBreak />
A line of text.<LineBreak />
</TextBlock>
</StackPanel>
</Border>
</Grid>
</UserControl>
在WPF中,对这一问题的明显的解决办法是处理PreviewKeyDown事件,但不幸的是,这是不可用在Silverlight 2,任何想法将受到欢迎(为什么Silverlight的事件路由的简短说明表现得如此)。
呵呵,倒票? – Noldorin 2009-06-16 17:44:56