WPF Fügen Sie einem TextBlock einen Rahmen hinzu

75

Ist es möglich, einem Textblock einen Rahmen hinzuzufügen? Ich muss es in der Setter-Eigenschaft unter dem Code hinzufügen:

<Style x:Key="notCalled" TargetType="{x:Type TextBlock}">
    <Setter Property="Margin" Value="2,2,2,2" />
    <Setter Property="Background" Value="Transparent" />
</Style>
Bruie
quelle
2
Verwenden Sie stattdessen eine TextBox.
Jim Balter

Antworten:

128

Nein, Sie müssen Ihren TextBlock in einen Rahmen einschließen. Beispiel:

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

Natürlich können Sie diese Eigenschaften ( BorderThickness, BorderBrush) auch über Stile festlegen :

<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>
Heinzi
quelle
31

Ein TextBlock erbt nicht wirklich von Control, sodass er keine Eigenschaften hat, die Sie normalerweise einem Control zuordnen würden. Die beste Möglichkeit, einen Rahmen in einem Stil hinzuzufügen, besteht darin, den TextBlock durch ein Label zu ersetzen

Unter diesem Link finden Sie weitere Informationen zu den Unterschieden zwischen einem TextBlock und anderen Steuerelementen

Rachel
quelle
3
Ausgezeichnete Antwort, ich ziehe es vor, eine andere Kontrolle / Grenze um sie herum einzuführen. Wow seit 2010 und immer noch gültig :)
nützlichBee
Tolle Infos unter diesem Link, den ich nicht kannte. Ich bevorzuge dies, da die Lösung von @ Heinzi in meiner App nicht funktioniert. Trotz des Versuchs dieser Lösung werden keine Rahmen angezeigt.
IronRod