Afficher & amp; cacher le Windows 8 sur le clavier de l'écran de WPF
Je suis en train d'écrire une application WPF pour une tablette Windows 8. C'est plein de windows 8 et pas de BRAS/RT.
Lorsque l'utilisateur entre dans une zone de texte-je afficher à l'écran le clavier à l'aide du code suivant:
System.Diagnostics.Process.Start(@"C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe");
Cela fonctionne bien mais je ne sais pas comment faire pour masquer le clavier à nouveau?
Ce que quelqu'un sait comment faire cela?
Aussi, est-il possible que je peux redimensionner mon application, de sorte que concentré de contrôle est déplacé vers le haut lorsque le clavier apparaît? Un peu comme pour une windows RT application.
Merci Beaucoup
source d'informationauteur Sun
Vous devez vous connecter pour publier un commentaire.
J'ai pu réussir à fermer le clavier à l'écran avec le code C# suivant.
J'espère que cela va vous aider.
Un peu de retard, je vais améliorer tasaki exemple pour un complet de ce que j'ai fait pour activer afficher/masquer sur réception focus/événement LostFocus lorsque l'utilisateur clique sur une zone de texte dans mon application WPF pour tablette windows 8.J'espère que cela aide les personnes ayant les mêmes maux de tête, parce que la désactivation de InkHelper, ne fonctionne pas vraiment bien si tu veux faire défiler avec la touche de l'événement...
Tout d'abord u doit ajouter ces référence à votre Application.Xaml.cs Fichier.
Le code:
Je open-source de mon projet est d'automatiser tout ce qui concerne TabTip de l'intégration en application WPF.
Vous pouvez l'obtenir sur nugetet après que tous vous avez besoin est d'une simple config dans vos applications de démarrage logique:
Vous pouvez lier TabTip la logique d'automatisation à tout UIElement. Le Clavier virtuel s'ouvre lorsque cet élément permettra d'obtenir le focus, et va se fermer lorsque l'élément va perdre le focus. Non seulement cela, mais TabTipAutomation va se déplacer UIElement (ou la Fenêtre) en vue, de sorte que TabTip ne bloque pas le concentré de l'élément.
Pour plus d'informations, reportez-vous à la site du projet.
Eh bien, je voudrais essayer quelque chose comme cela
Je ne suis pas sûr de savoir comment cacher le clavier de la programmation, mais juste comme vous le savez, j'ai récemment publié un exemple sur la façon de déclencher (comme dans, spectacle) le clavier tactile dans les applications WPF lorsqu'un utilisateur clique dans une zone de texte, c'est ici:
http://code.msdn.microsoft.com/Enabling-Windows-8-Touch-7fb4e6de
La chose cool à propos de cet exemple, car il ne nécessite pas l'utilisation de Processus et utilise à la place des prises en charge de Windows 8 API pour déclencher le clavier tactile pour les contrôles de zone de texte à l'aide de l'automatisation.
Il a été quelque chose que j'ai travaillé pendant de nombreux mois, je suis content d'enfin contribuer cet exemple à notre communauté. S'il vous plaît laissez-moi savoir si vous avez des questions, suggestions, problèmes, etc dans l'échantillon Q&Un volet
Peut-être vous pouvez essayer la solution publiée sur ce blog:
http://mheironimus.blogspot.nl/2015/05/adding-touch-keyboard-support-to-wpf.html
Il contient certaines des choses que vous avez demandé (et plus):
FrameworkElement.BringIntoView ()
FrameworkElement.InputScope
propriété de choisir la disposition du clavier (numérique, e-mail, url, etc)essayer celui-ci
J'espère que cela va vous aider.
Cela devrait fonctionner pour l'ouvrir, puis de tuer le processus.
Tuant le processus qui va la fermer.
Si vous le débogage et l'étape par le biais de ces deux lignes, cependant, le même message d'erreur que vous avez mentionné ci-dessus se produit - "Processus a quitté, de sorte que la demande d'information n'est pas disponible."
Si vous ne sont pas marcher à travers ces deux lignes pendant le débogage, aucune exception n'est levée et le clavier à l'écran sera tué.
Si vous utilisez
CloseMainWindow()
le clavier ne sera pas fermer.CloseMainWindow()
pour les processus avec une INTERFACE utilisateurde sorte que vous pourriez penser que ce serait efficace, mais peut-être parce que le clavier est la partie de l'OS ça ne compte pas.Confirmer que cela fonctionne, puis jeter le
proc.Kill()
dans un try-catch avec la journalisation des erreurs pour la paix de l'esprit.