“Cliquables” textblock?
J'ai un WP7 application, où je voudrais avoir un "cliquables" TextBlock
zone, que lorsqu'un utilisateur clique sur le TextBlock
, il le met dans le mode d'édition (un autre contrôle).
Ce serait ajouter un autre explicite étape pour un utilisateur avant d'édition de texte.
Il n'y a pas de cliquez sur l'événement pour le TextBlock
(ce qui ne m'étonne pas).
Est-il possible de faire cela? Enveloppé dans un autre contrôle, ou quelque chose de similaire?
Vous devez vous connecter pour publier un commentaire.
Oui, il y a un événement de clic. Son appelé MouseLeftButtonDown
J'ai résolu ce problème par la création d'un Bouton avec le TextBlock à l'intérieur de son Modèle comme celui-ci:
C'est un peu plus de balisage, mais vous n'avez pas besoin d'écrire du code, il est fourni par le cadre et fonctionne correctement.
Vous pouvez associer un événement click utilisant le geste de soutien.
edit: en le faisant de cette façon, votre comportement va être consistante avec un Clic (tap) à l'égard de l'utilisateur à se déplacer de leur doigt sur l'écran pendant l'opération. Cliquez sur ne sera pas le feu sous la mousedown, se déplacer hors de contrôle, mouseup. Appuyez sur le geste fonctionne de la même façon. Pas tous les utilisateurs savent qu'ils peuvent abandonner un clic en déplaçant la souris ou le doigt, mais certains le font et vous aurez pris sur ce si pas de le manipuler correctement. MouseLeftButtonUp la manipulation fonctionne de la même manière, mais je ne recommanderais pas en s'appuyant sur ce qu'il n'est pas, par conception, et il peut y avoir des modifications imprévues ou à des conflits avec d'autres contrôles.
Il y a plusieurs réponses qui conseils d'utilisation MouseLeftButton événements, mais j'ai vu beaucoup d'exemples où cette approche va mal.
Je vous recommande de placer TextBlock (ou d'un autre contrôle/contrôle) dans un Bouton avec un style personnalisé (supprimé toutes les frontières/marges à l'exception de contrôle de contenu). C'est BEAUCOUP MIEUX!
OnlyContentStyle
style comme mentionné dans ma réponseUne autre façon de le faire est d'utiliser le Seva est une solution, mais en ajoutant un peu plus le défilement ne se déclenche pas le "Clic"
Il semble que vous juste besoin d'un bouton. Changer le modèle de contrôle à supprimer la bordure style etc. et de faire votre propre (ou d'effacer l'existant) des états visuels. Ou même la modifier de sorte que le "déprimés" l'état se donne un peu la projection en 3D.
Aussi, avec un bouton, vous pouvez également utiliser la Commande sur la touche si vous êtes en utilisant MVVM.
Luc
Je préfère ajouter un événement et faire le reste dynamique.