2010-10-15 9 views
5

W jaki sposób mogę programowo wyświetlić panel soft input (SIP)/keypad za pomocą kodu. (Nie mam pola tekstowego, w którym mogę określić InputScope).Panel wprowadzania miękkich ekranów (SIP) na WP7 programowo

+2

Dlaczego chcesz? Użytkownicy oczekują, że SIP służy do wprowadzania tekstu do pola tekstowego (lub podobnego). –

+0

Chcę wyświetlić tekst w bloku tekstowym. Ponadto, problemem polegającym na tym, że pole tekstowe jest ustawione, jest to, że SIP jest wyświetlany tylko wtedy, gdy pole tekstowe jest aktywne. Mam tylko jeden interfejs użytkownika, który aktualizuje się na podstawie tego, co pisze użytkownik, inne elementy są aktualizowane na podstawie tego głównego wejścia. Co próbuję obejść, to fakt, że jeśli użytkownik kliknie gdzie indziej na moim ekranie, SIP znika i użytkownik musi ponownie kliknąć wewnątrz pola tekstowego, aby go wyświetlić –

Odpowiedz

11

Od Jeff Blankenburgs 31 Days of Windows Phone 7:

Czasami chcesz uzyskać klawiatura wejście od użytkownika, nawet jeśli nie chcą przedstawić je z rzeczywistej tekstowym. Prawdopodobnie istnieje wiele sposobów na to, ale mam używałem poręcznego, który jest prosty do osiągnięcia. (Jeśli szukasz bez powodu to zrobić, pomyśleć o gry Wisielec. Nie chcę klawiaturę widoczne zawsze, ale również nie chcą tekstowym na ekranie.)

Umieść przycisk na swojej stronie.

Umieść pole tekstowe na swojej stronie, ale upewnij się, że jest ukryte przed widokiem użytkownika.

Pozycjonuj go poza ekranem, uczyń go całkowicie przezroczystym (i absolutnym tłem) lub inną metodą, która pozwala mu dodać do drzewa wizualnego, ale nie pozwala użytkownikowi go zobaczyć.

Ustaw funkcję obsługi zdarzeń na przycisku, która ustawia Focus() na ukryty tekst, kiedy zostanie kliknięty.

To wszystko! Umożliwi to wyświetlenie klawiatury bez wyświetlania przez użytkownika pola tekstowego. Wyświetlanie pola tekstowego.

0

Jeśli używasz XNA, możesz użyć Guide.BeginShowKeyboardInput, ale nie jestem pewien, czy jest to dozwolone, jeśli robisz silverlight. Ale dodam komentarz do "dlaczego?" ponieważ jeśli nie masz pola tekstowego, w jaki sposób wyświetlasz użytkownikowi to, co pisze?