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>

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>

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.