2010-10-19 9 views
45

Est-il possible d'ajouter une bordure à un bloc de texte? J'en ai besoin pour être ajouté dans la propriété setter ci-dessous le code:WPF Ajouter une bordure à un bloc de texte

<Style x:Key="notCalled" TargetType="{x:Type TextBlock}"> 
    <Setter Property="Margin" Value="2,2,2,2" /> 
    <Setter Property="Background" Value="Transparent" /> 
</Style> 
+2

Utilisez une zone de texte à la place. –

Répondre

86

Non, vous devez envelopper votre TextBlock dans une bordure. Exemple:

<Border BorderThickness="1" BorderBrush="Black"> 
    <TextBlock ... /> 
</Border> 

Bien sûr, vous pouvez définir ces propriétés (BorderThickness, BorderBrush) à travers les styles ainsi:

<Style x:Key="notCalledBorder" TargetType="{x:Type Border}"> 
    <Setter Property="BorderThickness" Value="1" /> 
    <Setter Property="BorderBrush" Value="Black" /> 
</Style> 

<Border Style="{StaticResource notCalledBorder}"> 
    <TextBlock ... /> 
</Border> 
18

Un TextBlock ne hérite pas réellement de contrôle il ne possède pas de propriétés que vous serait généralement associé à un contrôle. Votre meilleur pari pour ajouter une bordure dans un style est de remplacer le TextBlock avec une étiquette

Voir this link pour en savoir plus sur les différences entre un TextBlock et d'autres contrôles

+2

Excellente réponse, je préfère ceci à devoir introduire un autre contrôle/bordure autour de lui. wow depuis 2010 et toujours valide :) – usefulBee

Questions connexes