我一直試圖在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