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 entweder auf LeftToRight oder RightToLeft festgelegt werden. Durch Festlegen von 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 einen Wert von RightToLeft interpretiert. Wenn Sie sich die von diesem XAML erzeugte Benutzeroberfläche ansehen, wird das Rechteck "Chartreuse" oben rechts und nicht oben links angezeigt, wie es sich bei FlowDirection um das Standardmäßige LeftToRight-Rechteck handelt.

<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 das Festlegen von 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 FlowDirection von RightToLeft reagiert, die in diesem Thema nicht erwähnt wird, 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 die FlowDirection-StandardeinstellungLeftToRight.

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

  • 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 beispielsweise FlowDirection für einen RadioButton auf RightToLeft festlegen, wird die schaltflächenklickbare Grafik rechts neben dem Textbeschriftungsinhalt angezeigt, da das Raster in der RadioButton-Vorlage jetzt "0" 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 FlowDirection RightToLeft ist. Weder die gesamte Zeichenfolge noch einzelne Zeichen oder Glyphen werden gedreht. 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 als 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 sichtbaren Auswirkungen auf Text in einem Glyphenelement , ändert jedoch den Treffertest und den Koordinatenrahmen des Elements.

FlowDirection für Image und MediaElement

Wenn Sie FlowDirection für ein Bild auf RightToLeft festlegen, wird der visuelle Inhalt eines Bilds horizontal gedreht. Ein Image-Element erbt jedoch nicht den FlowDirection-Wert 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 Bildwendeverhaltens müssen Sie das FlowDirection-Element für das Image-Element speziell auf RightToLeft festlegen oder die FlowDirection-Eigenschaft im CodeBehind festlegen. Erwägen Sie, das Image-Element anhand der x:Uid-Direktive zu identifizieren und FlowDirection-Werte als RESW-Ressource anzugeben, damit Ihre Lokalisierungsexperten diesen Wert später ändern können, ohne den XAML-Code oder den Code zu ändern.

MediaElement erbt auch keinen FlowDirection-Wert von einem übergeordneten Element. Wenn Sie FlowDirection auf MediaElement explizit auf RightToLeft festlegen, wird der Medienansichtsbereich horizontal gedreht, ähnlich wie ein Bild flippt. 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. Das Festlegen von 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