Accueil > Silverlight, Silverlight 3 > [SL3] : Sélectionner le texte d’un TextBlock

[SL3] : Sélectionner le texte d’un TextBlock

Silverlight est une technologie fonctionnant généralement dans un navigateur (si on ne parle pas du mode Out Of Browser bien sûr). Nous nous devons donc de ne pas trop perturber les habitudes des Internautes pour lequels nous faisons nos applications…
Or j’ai souvent eu la remarque lors de développements Silverlight de la frustration des utilisateurs à ne pouvoir séléctionner un texte visible ! Généralement nous utilisons le controle TextBlock pour afficher du texte, qui ne permet pas de faire la dite sélection…
Alors comment faire ? Il existe plusieurs méthodes pour parvenir à nos fins, la plus simple étant de réaliser un style pour le controle TextBox afin lui donner l’aparence d’un TextBlock ! Pour celà nous retirons les comportements associés au focus, mouseover, etc et nous rendons la TextBox en ReadOnly. Ainsi nous obtenons le style suivant :


<Style x:Key="TextBlockFakeStyle"
			   TargetType="TextBox">
			<Setter Property="BorderThickness"
					Value="0" />
			<Setter Property="IsReadOnly"
					Value="True" />
			<Setter Property="Foreground"
					Value="#FF000000" />
			<Setter Property="Padding"
					Value="0" />
			<Setter Property="Template">
				<Setter.Value>
					<ControlTemplate TargetType="TextBox">
						<Border x:Name="Border"
								Background="Transparent">
							<ScrollViewer x:Name="ContentElement"
										  BorderThickness="0"
										  IsTabStop="False"
										  Padding="{TemplateBinding Padding}" />
						</Border>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>

Pour ce qui est de l’utilisation, rien de plus simple : utilisez le controle TextBox en lieu et place d’un TextBlock et appliquez lui le style que nous venons de faire et le tour est joué :


	<Grid x:Name="LayoutRoot"
		  Background="Ivory">

			<TextBox Text="Auxerunt haec vulgi sordidioris audaciam, quod cum ingravesceret penuria commeatuum, famis et furoris inpulsu Eubuli cuiusdam inter suos clari domum ambitiosam ignibus subditis inflammavit rectoremque ut sibi iudicio imperiali addictum calcibus incessens et pugnis conculcans seminecem laniatu miserando discerpsit. post cuius lacrimosum interitum in unius exitio quisque imaginem periculi sui considerans documento recenti similia formidabat."
					 Style="{StaticResource TextBlockFakeStyle}"
					 TextWrapping="Wrap"
					 VerticalAlignment="Top"/>

	</Grid>

Publicités
Catégories :Silverlight, Silverlight 3
  1. Aucun commentaire pour l’instant.
  1. No trackbacks yet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :