FrameworkElement.FlowDirection Eigenschaft

Definition

Ruft die Richtung ab, in der Text und andere Ui-Elemente in einem übergeordneten Element, das ihr Layout steuert, fließen, oder legt diese fest. Diese Eigenschaft kann auf oder LeftToRightRightToLeftfestgelegt werden. Durch Festlegen FlowDirection auf RightToLeft für ein beliebiges Element wird die Ausrichtung nach rechts, die Lesereihenfolge von rechts nach links und das Layout des Steuerelements festgelegt, um von rechts nach links zu fließen.

public:
 property FlowDirection FlowDirection { FlowDirection get(); void set(FlowDirection value); };
FlowDirection FlowDirection();

void FlowDirection(FlowDirection value);
public FlowDirection FlowDirection { get; set; }
var flowDirection = frameworkElement.flowDirection;
frameworkElement.flowDirection = flowDirection;
Public Property FlowDirection As FlowDirection
<frameworkElement FlowDirection="flowDirectionMemberName"/>

Eigenschaftswert

Die Richtung, in die Text und andere UI-Elemente in ihrem übergeordneten Element als Wert der Enumeration fließen. Der Standardwert ist LeftToRight.

Beispiele

In diesem XAML-Beispiel wird veranschaulicht, wie ein Layoutcontainer wie Grid den Wert interpretiert RightToLeft. Wenn Sie sich die benutzeroberfläche ansehen, die von diesem XAML erzeugt wird, wird das Rechteck "Chartreuse" oben rechts und nicht oben links angezeigt, wie es bei der Standardeinstellung LeftToRightder Fall FlowDirection wäre.

<Grid FlowDirection="RightToLeft">
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <Rectangle Fill="Chartreuse" Width="30" Height="30"/>
    <Rectangle Grid.Row="1" Fill="Purple" Width="30" Height="30"/>
    <Rectangle Grid.Column="1" Fill="Pink" Width="30" Height="30"/>
    <Rectangle Grid.Row="1" Grid.Column="1" Fill="Orange" Width="30" Height="30"/>
</Grid>

Hinweise

FlowDirection ist für die Unterstützung des Rechts-nach-Links-Layouts für Apps vorgesehen. Grundsätzlich sollte die Einstellung FlowDirection auf RightToLeft ein geeignetes Rechts-nach-Links-Verhalten und Rendering jedes XAML-Steuerelements erzeugen, auf das es angewendet wird. Bestimmte XAML-Steuerelemente verfügen möglicherweise über eine weitere Verarbeitung innerhalb ihrer Vorlagen oder Logik, die auf FlowDirectionRightToLeft die antwortet, die in diesem Thema nicht notiert ist, und dies kann in den Referenzthemen für diese XAML-Steuerelemente notiert werden.

Ein -Objekt erbt den FlowDirection Wert von seinem übergeordneten Element in der Objektstruktur. Jedes Element kann den Wert überschreiben, den es vom übergeordneten Element erhält. Wenn nicht angegeben, ist LeftToRightdie FlowDirection-Standardeinstellung .

Wenn der FlowDirection Wert für ein Objekt lautet RightToLeft, ändern sich bestimmte Werte und das Verhalten des FrameworkElements :

  • Innerhalb des Elements wird der Koordinatenrahmen horizontal gedreht, sodass "(0, 0)" die obere rechte Ecke ist. Dies wirkt sich auf die von der Treffertest-API zurückgegebenen Werte aus, z. B . FindElementsInHostCoordinates.
  • Wenn es sich beim FrameworkElement um einen Pfad oder eine andere Form handelt, wird der visuelle Inhalt horizontal gedreht.
  • Bei Layoutcontainern ändert sich der Koordinatenrahmen des Referenzrahmens. "(0, 0)" in einer Canvas ist die obere rechte Ecke. Die Spalte "0" in einem Raster für Zwecke von Grid.Column ist die am weitesten rechts stehende Spalte.
  • Innerhalb der Vorlagenkomposition eines Steuerelements gelten dieselben Layoutänderungen. Wenn Sie z. B. für RightToLeft einen RadioButton-Wert festlegenFlowDirection, wird die schaltflächenklickbare Grafik rechts neben dem Textbeschriftungsinhalt angezeigt, da das Raster in der RadioButton-Vorlage "0" jetzt als die rechtsste Spalte behandelt und die Textbeschriftung rechtsbündig ist.
  • Bild weist ein besonderes Verhalten auf. Weitere Informationen finden Sie weiter unten im Abschnitt "FlowDirection for Image".

Text in Textcontainern wie TextBlock oder TextBox wird nicht horizontal gedreht, wenn FlowDirectionRightToLeftweder die gesamte Zeichenfolge noch einzelne Zeichen oder Glyphen gedreht werden. Die Reihenfolge der Inlineelemente in einer InlineCollection ändert sich auch nicht. Dies ermöglicht das Mischen von Inhalten in einer anderen Rechts-nach-Links-App, z. B. das Einschließen absichtlicher englischer Sprachzeichenfolgen in einer arabischen Sprachbenutzeroberfläche. Jede Zeichenfolge, die eine Textquelle für einen Textcontainer sein soll, in dem die gewünschte Sprache eine Sprache von rechts nach links ist, sollte diese Zeichenfolge in der entsprechenden Unicode-Darstellung angeben, die in einem Textcontainer korrekt dargestellt wird. Ein Wert von FlowDirection wie RightToLeft in einem Textcontainer ändert jedoch den TextAlignment-Standardwert so, dass der rechte Rand des Texts rechts an den Textcontainergrenzen ausgerichtet ist.

FlowDirection hat keine sichtbare Auswirkung auf Text in einem Glyphenelement , ändert jedoch den Treffertest und den Koordinatenrahmen des Elements.

FlowDirection für Image und MediaElement

Wenn Sie als RightToLeft für ein Bild festlegenFlowDirection, wird der visuelle Inhalt eines Bilds horizontal gedreht. Ein Image-Element erbt den FlowDirection Wert jedoch nicht von einem übergeordneten Element. In der Regel möchten Sie das Bild flipping-Verhalten nur in Bildern, die für das Layout relevant sind, aber nicht unbedingt für Elemente mit eingebettetem Text oder anderen Komponenten, die für eine Rechts-nach-Links-Zielgruppe nicht sinnvoll sind. Zum Abrufen des Bilddrehverhaltens müssen Sie das FlowDirection -Element für das Image-Element speziell auf RightToLeftfestlegen oder die FlowDirection -Eigenschaft in CodeBehind festlegen. Erwägen Sie, das Image-Element anhand der x:Uid-Direktive zu identifizieren und Werte als RESW-Ressource anzugeben FlowDirection , damit Ihre Lokalisierungsexperten diesen Wert später ändern können, ohne den XAML- oder Code zu ändern.

MediaPlayerElement erbt FlowDirection auch keinen Wert von einem übergeordneten Element. Wenn Sie explizit als RightToLeft für MediaPlayerElement festlegenFlowDirection, wird der Medienansichtsbereich horizontal gedreht, ähnlich wie ein Bild fliptet. Dies sollte absichtlich noch seltener sein als Image, da es wahrscheinlich ist, dass jede Medienquelle, die in lokalisierten Inhalten verwendet wird, bereits Probleme mit rechts nach links in der Quellmediendatei behoben hat.

FlowDirection für WebView und WebViewBrush

WebView und WebViewBrush fördern keine Rechts-nach-Links-Informationen dazu, wie der HTML-Code geladen wird. Wenn im HTML-Inhalt Überlegungen von links nach rechts enthalten sind, sollten Sie die x:Uid-Direktive für das WebView-Element festlegen und einen beliebigen WebView.Source Uniform Resource Identifier (URI)-Wert als RESW-Ressource in Zeichenfolgenform angeben. WebView und WebViewBrush erben flowDirection auch nicht von übergeordneten Elementen. Die Einstellung FlowDirection für WebView und WebViewBrush verursacht keine Ausnahmen, aber alle von Ihnen festgelegten Werte werden von der Runtime ignoriert.

Gilt für:

Weitere Informationen