256 votes

Toute façon de rendre un textblock WPF sélectionnables ?

Je veux rendre le texte affiché dans l' Esprit, Twitter open source client, au choix. Il est actuellement affichée à l'aide d'un custom textblock. J'ai besoin d'utiliser un TextBlock parce que je travaille avec le textblock est inlines pour afficher et mettre en forme le nom d'utilisateur @et les liens que des liens hypertexte. Une demande fréquente est d'être en mesure de copier-coller le texte. Pour ce faire j'ai besoin de faire le TextBlock sélectionnable.

J'ai essayé de le faire fonctionner en affichant le texte à l'aide d'une lecture seule zone de texte dessiné pour ressembler à un textblock, mais cela ne fonctionne pas dans mon cas car une zone de texte n'a pas inlines. En d'autres termes, je ne peux pas le style ou le format du texte dans une zone de texte individuellement comme je peux avec un TextBlock.

Des idées?

269voto

MSB Points 1032
<TextBox Background="Transparent"
         BorderThickness="0"
         Text="{Binding Text, Mode=OneWay}"
         IsReadOnly="True"
         TextWrapping="Wrap" />

19voto

Jobi Joy Points 20883

Créez ControlTemplate pour le TextBlock et placez une zone de texte à l’intérieur dont la valeur de propriété readonly. Ou juste utiliser la zone de texte et le rendre readonly, vous pouvez alors changer la TextBox.Style pour qu’il ressemble à TextBlock.

18voto

juanjo.arana Points 391

Appliquer ce style à votre zone de texte, et c’est tout (inspiré de cet article) :

11voto

Bruce Points 3473

Je ne sais pas si vous pouvez faire un TextBlock sélectionnable, mais une autre option serait d’utiliser un RichTextBox - c’est comme une zone de texte comme vous a suggéré, mais prend en charge la mise en forme souhaitée.

3voto

Saraf Talukder Points 107

TextBlock ne possède pas de modèle. Afinde tant pour y parvenir, nous devons utiliser une zone de texte dont le style est changé à se comporter comme un textBlock.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X