2010-10-15 9 views
5

Wie kann ich programmgesteuert den Soft-Eingabebereich (SIP)/Tastatur über Code anzeigen? (Ich habe keine Textbox, auf der ich den InputScope angeben kann).Soft-Eingabebereich (SIP) auf WP7 programmgesteuert anzeigen

+2

Warum möchten Sie? Benutzer erwarten, dass das SIP zur Eingabe von Text in ein Textfeld (oder ähnliches) dient. –

+0

Ich möchte den Text im Textblock anzeigen. Darüber hinaus ist das Problem mit der Textbox, dass das SIP nur angezeigt wird, wenn das Textfeld den Fokus hat. Ich habe nur eine Benutzeroberfläche, die basierend auf dem, was der Benutzer eingibt, aktualisiert, andere Elemente aktualisieren basierend auf dieser Haupteingabe. Was ich versuche zu umgehen, ist die Tatsache, dass, wenn der Benutzer an anderer Stelle auf meinem Bildschirm klickt, das SIP verschwindet und der Benutzer muss erneut in das Textfeld klicken, um es anzuzeigen –

Antwort

11

Von Jeff Blankenburgs 31 Days of Windows Phone 7:

Manchmal wollen Sie Tastatur Eingabe von Ihrem Benutzer erhalten, auch wenn Sie wollen sie nicht mit einer tatsächlichen TextBox präsentieren. Es gibt wahrscheinlich viele Möglichkeiten, aber ich habe mit einem handlichen, das ist einfach zu erreichen. (Wenn Sie aus einem Grund suchen, dies zu tun, denken Sie an ein Spiel Henker. Ich will nicht die Tastatur sichtbar immer, aber ich auch nicht wollen, dass ein Text auf dem Bildschirm.)

Setzen Sie einen Knopf auf Ihre Seite.

Setzen Sie eine TextBox auf Ihre Seite, aber vergewissern Sie sich, dass sie aus der Sicht des Benutzers ausgeblendet ist.

Positionieren Sie es entweder außerhalb des Bildschirms, machen Sie es vollständig transparent (und im absoluten Hintergrund) oder eine andere Methode, die es Ihrem visuellen Baum hinzugefügt, aber nicht den Benutzer sehen lassen kann.

Legen Sie auf der Schaltfläche einen Ereignishandler fest, der Focus() auf das ausgeblendete Textfeld setzt, wenn darauf geklickt wird.

Das war's! Dadurch können Sie die Tastatur anzeigen, ohne dass der Benutzer eine Textbox sieht.

0

Wenn Sie XNA verwenden, können Sie Guide.BeginShowKeyboardInput verwenden, aber ich bin nicht sicher, ob das bei Silverlight zulässig ist. Aber ich werde den Kommentar "Warum?" Denn wenn Sie kein Textfeld haben, wie zeigen Sie dem Benutzer, was er schreibt?