Silverlight - Text
In diesem Kapitel werden wir uns ansehen, was Silverlight zum Anzeigen von Text bietet. Der Textblock wird für die gesamte Textwiedergabe und Silverlight verwendet. Andere wichtige Merkmale sind -
- Es kann für einfachen Text verwendet werden oder Sie können eine Mischung aus Formatierungsstilen anwenden.
- Silverlight unterstützt einen Standardsatz integrierter Schriftarten.
- Sie können auch benutzerdefinierte Schriftarten herunterladen, wenn der visuelle Stil Ihrer Anwendung etwas weniger Gewöhnliches benötigt.
Textblock
Zum Anzeigen von Text verwenden wir das Silverlight-Lehrbuchelement, ein leichtes Steuerelement zum Anzeigen kleiner Mengen von schreibgeschütztem Text. Tatsächlich haben wir dies bereits ziemlich oft gesehen, da seine grundlegende Verwendung nicht wirklich viel Erklärung benötigt. Sie legen einfach die Texteigenschaft fest und dieser Text wird für Sie angezeigt.
<TextBlock Text = "Print Testing" HorizontalAlignment Center" FontFamily = "Georgia"/>
Die hierarchische Vererbung der TextBlock-Klasse lautet wie folgt:
Nachstehend sind die häufig verwendeten aufgeführt properties von TextBlock Klasse.
Sr. Nr. | Objektbeschreibung |
---|---|
1 | ContentEnd Ruft ein TextPointer-Objekt für das Ende des Textinhalts im TextBlock ab. |
2 | ContentStart Ruft ein TextPointer-Objekt für den Start von Textinhalten im TextBlock ab. |
3 | IsTextSelectionEnabled Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob die Textauswahl im TextBlock aktiviert ist, entweder durch Benutzeraktion oder durch Aufrufen einer auswahlbezogenen API. |
4 | IsTextSelectionEnabledProperty Identifiziert die Abhängigkeitseigenschaft IsTextSelectionEnabled. |
5 | LineHeight Ruft die Höhe jeder Inhaltszeile ab oder legt diese fest. |
6 | MaxLines Ruft die im TextBlock angezeigten maximalen Textzeilen ab oder legt diese fest. |
7 | SelectedText Ruft einen Textbereich des ausgewählten Texts ab. |
8 | SelectionEnd Ruft die Endposition des im TextBlock ausgewählten Texts ab. |
9 | SelectionHighlightColor Ruft den Pinsel ab, mit dem der ausgewählte Text hervorgehoben wird, oder legt diesen fest. |
10 | SelectionStart Ruft die Startposition des im TextBlock ausgewählten Texts ab. |
11 | Text Ruft den Textinhalt eines TextBlocks ab oder legt diesen fest. |
12 | TextAlignment Ruft einen Wert ab oder legt einen Wert fest, der die horizontale Ausrichtung des Textinhalts angibt. |
13 | TextTrimming Ruft das Texttrimmverhalten ab oder legt es fest, das angewendet werden soll, wenn der Inhalt den Inhaltsbereich überläuft. |
14 | TextWrapping Ruft ab oder legt fest, wie der TextBlock Text umschließt. |
Die unten angegebenen werden häufig verwendet events von TextBlock Klasse.
Sr. Nr. | Eventbeschreibung |
---|---|
1 | ContextMenuOpening Tritt auf, wenn das System eine Interaktion verarbeitet, die ein Kontextmenü anzeigt. |
2 | SelectionChanged Tritt auf, wenn sich die Textauswahl geändert hat. |
Nachstehend sind die häufig verwendeten aufgeführt methods im TextBlock Klasse.
Sr. Nr. | Methode & Beschreibung |
---|---|
1 | Focus Fokussiert den TextBlock, als wäre er ein konventionell fokussierbares Steuerelement. |
2 | Select Wählt einen Textbereich im TextBlock aus. |
3 | SelectAll Wählt den gesamten Inhalt im TextBlock aus. |
Lauf
Manchmal möchten Sie eine differenzierte Kontrolle über die Formatierung und das Festlegen eines Stils für einen gesamten Textblock. Es ist manchmal nützlich, einzelne Wörter oder sogar Buchstaben zu formatieren, und wenn Sie dies möchten, anstatt die zu verwendenText Eigenschaft setzen Sie den Text in die TextBlockals Inhalt. Wenn Sie einen Code verwenden, entspricht dies dem Hinzufügen von Elementen zumTextBlock Inline-Eigenschaft.
Mit diesem Ansatz können Sie eine Reihe von Laufelementen hinzufügen. Jeder Lauf unterstützt dieselben Schriftfamilie, Frontgewicht, Vordergrund usw. Eigenschaften zur Steuerung des Textstils. Obwohl Run ein separates Element ist, wird der Fluss dadurch nicht gestört.
Schauen wir uns ein einfaches Beispiel an, das mehrere enthält Run Element im Inneren TextBlock. Unten ist der XAML-Code angegeben.
<UserControl x:Class = "SilverlightRunDemo.MainPage"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable = "d"
d:DesignHeight = "300" d:DesignWidth = "400">
<Grid x:Name = "LayoutRoot" Background = "White">
<TextBlock Width = "192" TextWrapping = "Wrap" FontFamily = "Verdana">
<Run Text = "Hello, " />
<Run FontWeight = "Bold" Text = "world!" />
<Run Text = "You" />
<Run FontStyle = "Italic" Text = " are " />
<Run Text = "learning" FontSize = "40" FontFamily = "01d English Text MT" />
<Run Text = " the " />
<Run Text = "basics of " Foreground = "Blue" />
<Run Text = " Silverlight." FontSize = "30" />
</TextBlock>
</Grid>
</UserControl>
Wenn der obige Code kompiliert und ausgeführt wird, wird die folgende Ausgabe angezeigt.
Wie Sie sehen können, wird dieser Textblock mithilfe von mit verschiedenen Formatierungsstilen angeordnet Run Element.
Übrigens müssen Sie nicht jedes einzelne Textbit in einem Lauf umbrechen. Sie können den größten Teil des Inhalts eines Textblocks als einfachen Text belassen und einfach anwendenrun zu den Teilen, die eine andere Formatierung benötigen, wie unten gezeigt.
<TextBlock> Hello,
<Run FontWeight = "Bold" Text =" world!"/>
</TextBlock>
Zeilenumbruch
Silverlight ignoriert normalerweise Zeilenumbrüche in der XAML. Es wird davon ausgegangen, dass die meisten Leerzeichen vorhanden sind, um die Lesbarkeit zu verbessern, da dieser Bereich tatsächlich angezeigt werden soll.
Schauen wir uns diesen XAML-Code an, der drei separate Textzeilen enthält.
<TextBlock>
This is not the end.
It is not even the beginning of the end.
But it is, perhaps, the end of the beginning
</TextBlock>
Wenn der obige Code kompiliert und ausgeführt wird, wird die folgende Ausgabe angezeigt.
Wie Sie sehen, hat es die Zeilenumbrüche ignoriert und den gesamten Text zusammen ausgeführt.
Wenn Sie aktivieren text wrappingEs werden Zeilenumbrüche dort eingefügt, wo sie benötigt werden, um den Text anzupassen, aber die Zeilenumbrüche in Ihrem Beispiel werden ignoriert.
Wenn Sie nur explizite Zeilenumbrüche hinzufügen möchten, müssen Sie Ihrem Textblock ein Zeilenumbruch-Tag hinzufügen. Der folgende Text beginnt in einer neuen Zeile.
Schauen wir uns das gleiche Beispiel noch einmal an, indem wir das hinzufügen LineBreak Etikett.
<TextBlock FontSize = "16">
This is not the end.
<LineBreak/>
It is not even the beginning of the end.
<LineBreak/>
But it is, perhaps, the end of the beginning
</TextBlock>
Wenn der obige Code ausgeführt wird, sehen Sie, dass er jetzt so aussieht, wie in XAML angegeben.
Eingebaute Schriftarten
Silverlight verfügt über einen festen Satz integrierter Schriftfamilien. Die Schriftarten haben aus historischen Gründen unterschiedliche Familiennamen. Die Standardfamilie unterscheidet sich technisch unter Mac OS und Windows, beispielsweise unter Mac OS, mit Lucida Grande, während sie unter Windows fast identisch ist, aber den Namen Lucida Sans Unicode trägt.
Einige der am häufigsten verwendeten Schriftarten sind unten aufgeführt.
Schriftarten |
---|
Arial |
Arial schwarz |
Comic ohne MS |
Kurier Neu |
Georgia |
Lucida Grande (Mac) oder Lucida Sans Unicode (Windows) |
Times New Roman |
Trebuchet MS |
Verdana |