webentwicklung-frage-antwort-db.com.de

Unterschied zwischen Label und TextBlock

Laut Windows-Anwendungsentwicklung mit Microsoft .NET 4 70-511 Training Kit

Was ist der Unterschied zwischen dem Steuerelement Label und dem Steuerelement TextBlock, da beide Inhaltssteuerelemente sind und nur Text anzeigen?

118
Rami Shareef

TextBlock ist kein Steuerelement

Obwohl TextBlock im System.Windows.Controls-Namespace vorhanden ist, handelt es sich nicht um ein Steuerelement. Es leitet sich direkt von FrameworkElement ab. Label hingegen leitet sich von ContentControl ab. Dies bedeutet, dass Label:

  1. Sie erhalten eine benutzerdefinierte Steuerungsvorlage (über die Eigenschaft Template).
  2. Andere Daten als nur eine Zeichenfolge anzeigen (über die Eigenschaft Content).
  3. Wenden Sie ein DataTemplate auf seinen Inhalt an (über die Eigenschaft ContentTemplate).
  4. Tun Sie, was ein ContentControl sonst noch tun kann, was ein FrameworkElement nicht kann.

    • Label Text ist ausgegraut, wenn er deaktiviert ist
    • Label unterstützt Zugriffstasten
    • Label ist viel schwerer als TextBlock

Quelle

Einige weitere interessante Lektüren weiter unten

195
biju

Label ist ContentControl, was bedeutet, dass Sie alles als Inhalt dafür festlegen können. Absolut alles, einschließlich Zeichenfolgen, Zahlen, Datumsangaben, anderer Steuerelemente, Bilder, Formen usw. TextBlock kann nur strings verarbeiten.

24
Snowbear

Beschriftungen unterstützen normalerweise die Ausgabe von einzeiligem Text, während der TextBlock für die mehrzeilige Textanzeige vorgesehen ist.

Zum Beispiel hat TextBlock in wpf eine Eigenschaft TextWrapping, die eine mehrzeilige Eingabe ermöglicht. Label hat das nicht.

23
rene_buehling

Obwohl sowohl TextBlock als auch Label zur Anzeige von Text verwendet werden, unterscheiden sie sich unter den Deckblättern erheblich.

=> Label erbt von ContentControl , einer Basisklasse, mit der nahezu jede nur vorstellbare Benutzeroberfläche angezeigt werden kann.

=> TextBlock erbt andererseits direkt von FrameworkElement , wodurch das allen gemeinsame Verhalten übersehen wird Elemente, die von Control erben. Durch die flache Vererbungshierarchie von TextBlock ist das Steuerelement leichter als Label und eignet sich besser für einfachere, nicht interaktive Szenarien.

PS: Wenn Sie jedoch Zugriffstasten verwenden oder ein flexibleres oder grafischeres Design wünschen, müssen Sie Label verwenden.

8