« TextBlock » : différence entre les versions
De Banane Atomic
Aller à la navigationAller à la recherche
Ligne 78 : | Ligne 78 : | ||
| WordEllipsis || le texte est coupé au dernier mot et {{boxx|(...)}} sont affichés. | | WordEllipsis || le texte est coupé au dernier mot et {{boxx|(...)}} sont affichés. | ||
|} | |} | ||
<kode lang='xaml'> | |||
<TextBlock Text="{Binding MyProperty}" | |||
MaxWidth="600" | |||
TextTrimming="CharacterEllipsis" /> | |||
</kode> | |||
== [https://msdn.microsoft.com/en-us/library/system.windows.textdecoration(v=vs.110).aspx#Remarks TextDecorations: souligner] == | == [https://msdn.microsoft.com/en-us/library/system.windows.textdecoration(v=vs.110).aspx#Remarks TextDecorations: souligner] == |
Dernière version du 16 avril 2020 à 14:53
StringFormat
Permet de mettre en forme une chaine de caractères. Présent depuis le Framework .NET 3.5 SP1.
<TextBlock Text="{Binding Path=MaPropriété, StringFormat=Texte {0} texte}" /> <!-- \ et {} servent de caractère d'échappement après le signe = --> <TextBlock Text="{Binding Path=MaPropriété, StringFormat=\{0\}}" /> <!-- Format d'une date --> <TextBlock Text="{Binding Path=Date, StringFormat=\{0:d\}}" /> <TextBlock Text="{Binding Path=Date, StringFormat={}{0:dddd MMMM dd}}" /> |
- Composite Formatting
- Standard Date and Time Format Strings
- Custom Date and Time Format Strings
- Standard Numeric Format Strings
- Custom Numeric Format Strings
MultiBinding
Permet de former un string composé de plusieurs Binding.
<TextBlock> <TextBlock.Text> <MultiBinding StringFormat="Texte {0} texte {1} texte"> <Binding Path="MaPropriété1" /> <Binding Path="MaPropriété2" /> </MultiBinding> </TextBlock.Text> </TextBlock> |
Si le StringFormat commence par { il faut le précéder de {}. StringFormat="{}{0} - {1}" |
Différent styles dans le même TextBlock
<TextBlock> <TextBlock.Inlines> <Run Text="{Binding Path=Timestamp, StringFormat={}{0} - }" /> <Run FontWeight="DemiBold" Text="{Binding Path=Message}" /> </TextBlock.Inlines> </TextBlock> |
Retour à la ligne
<TextBlock Text="Ligne 1 Ligne 2"</TextBlock> <TextBlock>Ligne 1<LineBreak />Ligne 2</TextBlock> |
Propriétés
Couleur
<TextBlock Foreground="Red" /> |
tbk.Foreground = new SolidColorBrush(Colors.Red); |
TextAlignement
Center, Justify, Left, Right
TextWrapping: retour à la ligne quand le texte déborde
<TextBlock TextWrapping="Wrap"></TextBlock> |
TextTrimming: comment couper le texte quand il déborde
None | le texte n'est pas coupé, il déborde. Valeur par défaut |
CharacterEllipsis | le texte est coupé et (...) sont affichés. |
WordEllipsis | le texte est coupé au dernier mot et (...) sont affichés. |
<TextBlock Text="{Binding MyProperty}" MaxWidth="600" TextTrimming="CharacterEllipsis" /> |
TextDecorations: souligner
Police / Font
FontFamily | Segoe UI par défaut sur Windows 10 |
FontSize | 12 par défaut |
FontStretch | Normal/Medium par défaut, Condensed, Expanded, ... |
FontStyle | Normal par défaut, Italic, Oblique |
FontWeight | Normal par défaut, Bold, Light, ... |
Typographie
Sélection du texte
TextBlock ne permet pas de sélectionner du texte. Pour cela, il faut utiliser une TextBox.
<TextBox Background="Transparent" BorderThickness="0" Text="{Binding MyTextBinding, Mode=OneWay}" IsReadOnly="True" TextWrapping="Wrap" /> |
TextBlock vs Label
Label est un Control, il peut donc:
- avoir un custom control template
- contenir des données autres qu'un string
- utiliser un DataTemplate
TextBlock hérite directement de FrameworkElement et n'est donc pas un Control.
- Label est grisé lorsqu'il est disable
- Label supporte les access keys
- TextBlock est plus léger