FrameworkElement.FlowDirection Propriété

Définition

Obtient ou définit la direction dans laquelle le texte et d’autres éléments d’interface utilisateur circulent dans n’importe quel élément parent qui contrôle leur disposition. Cette propriété peut être définie sur LeftToRight ou RightToLeft. La définition FlowDirection de sur RightToLeft n’importe quel élément définit l’alignement à droite, l’ordre de lecture de droite à gauche et la disposition du contrôle pour qu’elle passe de droite à gauche.

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"/>

Valeur de propriété

Direction dans laquelle le texte et d’autres éléments d’interface utilisateur circulent dans leur élément parent, en tant que valeur de l’énumération. La valeur par défaut est LeftToRight.

Exemples

Cet exemple XAML montre comment un conteneur de disposition tel que Grid interprète une valeur de RightToLeft. Si vous examinez l’interface utilisateur produite par ce XAML, le rectangle « Chartreuse » s’affiche en haut à droite, et non dans le coin supérieur gauche comme il le ferait quand FlowDirection est la valeur par défaut LeftToRight.

<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>

Remarques

FlowDirection est destiné à la prise en charge de la disposition de droite à gauche pour les applications. Fondamentalement, la définition sur FlowDirectionRightToLeft doit produire un comportement de droite à gauche approprié et un rendu de tout contrôle XAML auquel il est appliqué. Des contrôles XAML spécifiques peuvent avoir une gestion supplémentaire dans leurs modèles ou une logique qui répond à FlowDirection de RightToLeft ce qui n’est pas noté dans cette rubrique, et cela peut être noté dans les rubriques de référence pour ces contrôles XAML.

Un objet hérite de la FlowDirection valeur de son parent dans l’arborescence d’objets. N’importe quel élément peut remplacer la valeur qu’il obtient de son parent. S’il n’est pas spécifié, flowDirection par défaut est LeftToRight.

Si la FlowDirection valeur d’un objet est RightToLeft, certaines valeurs et le comportement de FrameworkElement changeront :

  • Dans l’élément, le cadre de coordonnées de référence est retourné horizontalement de telle sorte que « (0, 0) » soit le coin supérieur droit. Cela affecte les valeurs retournées par l’API de test d’accès, comme FindElementsInHostCoordinates.
  • Si l’élément FrameworkElement est un chemin d’accès ou une autre forme, son contenu visuel est retourné horizontalement.
  • Pour les conteneurs de disposition, le cadre de coordonnées de référence change. « (0, 0) » dans un canevas est le coin supérieur droit. La colonne « 0 » d’une grille aux fins de Grid.Column est la colonne la plus à droite.
  • Dans la composition de modèle d’un contrôle, les mêmes modifications de disposition s’appliquent. Par exemple, si vous définissez FlowDirection comme RightToLeft pour un RadioButton, le graphique de bouton cliquable s’affiche à droite du contenu de l’étiquette de texte, car la grille dans le modèle RadioButton traite désormais « 0 » comme la colonne la plus à droite, et l’étiquette de texte est alignée à droite.
  • L’image a un comportement spécial, consultez la section « FlowDirection for Image » ci-dessous.

Le texte dans les conteneurs de texte tels que TextBlock ou TextBox ne retourne pas horizontalement si FlowDirection est RightToLeft, ni la chaîne entière ni les caractères individuels ou les glyphes ne sont retournés. L’ordre des éléments inline d’un InlineCollection ne change pas non plus. Cela permet de mélanger du contenu dans une application de droite à gauche, par exemple, d’inclure des chaînes délibérées de langue anglaise dans une interface utilisateur en langue arabe. Toute chaîne destinée à être une source de texte pour un conteneur de texte où la langue prévue est une langue de droite à gauche doit spécifier cette chaîne dans la représentation Unicode appropriée, qui sera correctement présentée dans un conteneur de texte. Toutefois, une valeur de comme RightToLeft dans un conteneur de FlowDirection texte modifie la valeur TextAlignment par défaut, de sorte que le bord droit du texte est aligné à droite avec les limites du conteneur de texte.

FlowDirection n’a aucun effet visible sur le texte d’un élément Glyphes , mais modifie le test d’accès et le cadre de coordonnées de référence de l’élément.

FlowDirection pour Image et MediaElement

Si vous définissez FlowDirection comme RightToLeft pour une image, le contenu visuel d’une image est retourné horizontalement. Toutefois, un élément Image n’hérite pas de la FlowDirection valeur d’un élément parent. En règle générale, vous souhaitez uniquement que le comportement de retournement d’image dans les images qui sont pertinentes pour la disposition, mais pas nécessairement pour les éléments qui ont du texte incorporé ou d’autres composants qui n’auraient pas de sens inversé pour un public de droite à gauche. Pour obtenir le comportement de retournement d’image, vous devez définir l’élément FlowDirection sur l’élément Image spécifiquement sur RightToLeft, ou définir la FlowDirection propriété dans code-behind. Envisagez d’identifier l’élément Image par la directive x:Uid et de spécifier des FlowDirection valeurs en tant que ressource RESW, afin que vos experts en localisation puissent modifier cette valeur ultérieurement sans modifier le CODE XAML ou le code.

MediaPlayerElement n’hérite FlowDirection pas non plus de valeur d’un élément parent. Si vous ne définissez FlowDirection explicitement comme sur MediaPlayerElement, la zone d’affichage multimédia est inversée horizontalement, de la même façon qu’une RightToLeftimage bascule. Cette opération délibérée devrait être encore plus rare que Image, car il est probable qu’une source multimédia utilisée dans le contenu localisé ait déjà des problèmes de droite à gauche corrigés dans le fichier multimédia source.

FlowDirection pour WebView et WebViewBrush

WebView et WebViewBrush ne font pas la promotion d’informations de droite à gauche sur la façon dont le code HTML est chargé. S’il existe des considérations de gauche à droite dans le contenu HTML, envisagez de définir la directive x:Uid sur l’élément WebView et de spécifier une valeur URI (Uniform Resource Identifier) WebView.Source en tant que ressource RESW sous forme de chaîne. WebView et WebViewBrush n’héritent pas non plus de FlowDirection des éléments parents. La définition FlowDirection sur WebView et WebViewBrush n’entraîne pas d’exceptions, mais toute valeur que vous définissez est ignorée par le runtime.

S’applique à

Voir aussi