Ich habe versucht, das KeyDown-Ereignis eines UserControl (Seite) in meiner Silverlight-Anwendung zu behandeln, aber es scheint etwas merkwürdiges Verhalten seitens der Silverlight-Benutzereingabefunktionalität zu geben. Die Veranstaltung wird unter keinen Umständen ausgelöst. Ich habe sogar versucht, den Event-Handler an jedes Container-Steuerelement innerhalb des UserControl anzuhängen, aber immer noch ohne Glück. Tatsächlich ist das Silverlight-Benutzereingabe- "Ereignis-Routing" -System ziemlich neuartig und scheint mir ziemlich seltsam zu sein, so dass es vielleicht nur ein Missverständnis von mir ist, obwohl ich ziemlich ahnungslos darüber bin, wie ich vorgehen soll.Silverlight-Seite keine Eingangsereignisse abfangen
Der folgende Code ist eine Vorlage der jeweiligen Seite, mit der ich gerade teste.
<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>
In WPF, die offensichtliche Lösung für ein solches Problem wäre das PreviewKeyDown Ereignis zu behandeln, aber das ist leider nicht verfügbar in Silverlight 2. Irgendwelche Ideen wäre zu begrüßen (und eine kurze Erklärung, warum Silverlight Event-Routing verhält sich so wie es ist).
Huh, unten Abstimmung? – Noldorin