2012-04-04 5 views
2

Ich benutze VS2010, C#, um ein Silverlight Online-Spiel zu entwickeln, benutze ich Tastatur für Benutzereingaben, aber Benutzer müssen zunächst auf silverligh Leinwand klicken, um die Tastatur zu aktivieren (ich habe nur eine Leinwand in meiner Szene, die nicht Vollbild ist, gibt es nichts anderes), wie kann ich anfänglich Fokus auf Tastatur geben, so dass wann immer das Spiel beginnt Benutzer mit der Tastatur spielen kann (ohne Notwendigkeit, auf Leinwand zu klicken), ist es wie ich eingerichtet meine Tastatur:Silverlight-Anwendung benötigt Mausklick zum Aktivieren der Tastatur

 public MainPage() 
    { 
     InitializeComponent(); 
     Loaded += new RoutedEventHandler(Page_Loaded); 
    } 


     void Page_Loaded(object sender, RoutedEventArgs e) 
    { 
     this.KeyDown += new KeyEventHandler(Page_KeyDown); 
    } 

     void Page_KeyDown(object sender, KeyEventArgs e) 
    { 
    .... 
    } 

Antwort

1

Versuchen Sie, den Fokus zunächst auf die Silverlight-Plug-Einstellung, wie hier beschrieben: http://blog.falafel.com/Blogs/josh-eastburn/2011/03/10/Setting_Focus_on_the_Silverlight_Plugin_Object

Wenden Sie anschließend den nachfolgenden Fokus auf die Steuerung an, die Sie mit den Tastatureingaben aufnehmen möchten.

Ein weiterer Tipp, die für mich gearbeitet hat ist den DOM Fokus auf das Plugin zu setzen, nachdem es fertig Funktion ein anfängliches Skripts in der DOM-Struktur instanziiert ist auf dem Dokument durch Ausführen von:

$('#silverlightPlugin').on(function(){ 
    $(this).focus(); 
} 
+0

was die Steuerung, die ist akzeptiere ich meine Tastatureingabe hier? meine Leinwand? –

+0

Es ist schwer zu sagen, ohne Ihren Code zu sehen, aber ich nehme an, dass Sie ein Element in Ihrer Silverlight-Anwendung haben, das Keyboard-Ereignisse auslösen soll (z. B. ein Textfeld). Für welches Element Sie die Schlüsselereignisse auslösen möchten, Sie möchten den Fokus festlegen, nachdem das Plugin den Fokus erhalten hat. – KodeKreachor

Verwandte Themen