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 tout élément parent qui contrôle leur disposition. Cette propriété peut être définie sur LeftToRight ou RightToLeft. Le fait de définir FlowDirection sur RightToLeft sur n’importe quel élément définit l’alignement à droite, l’ordre de lecture de droite à gauche et la disposition du contrôle à passer 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 CODE XAML, le rectangle « Chartreuse » s’affiche en haut à droite, et non en haut à gauche comme il le ferait lorsque FlowDirection est le leftToRight par défaut.

<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é à prendre en charge la disposition de droite à gauche pour les applications. Fondamentalement, la définition de FlowDirection sur RightToLeft doit produire un comportement et un rendu appropriés de droite à gauche 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 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 valeur FlowDirection 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é, la valeur par défaut de FlowDirection est LeftToRight.

Si la valeur FlowDirection sur 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 sorte que « (0, 0) » soit le coin supérieur droit. Cela affecte les valeurs retournées par l’API de test de positionnement, telle que 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 canvas est le coin supérieur droit. La colonne « 0 » d’une grille pour les besoins 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 sur 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 s’inverse pas horizontalement si FlowDirection a la valeur RightToLeft, ni la chaîne entière, ni les caractères individuels ni les glyphes ne sont retournés. L’ordre des éléments Inline dans un InlineCollection ne change pas non plus. Cela permet de mélanger du contenu dans une application de droite à gauche, par exemple en incluant des chaînes délibérées en anglais dans une interface utilisateur en 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, la valeur FlowDirection rightToLeft dans un conteneur de texte modifie la valeur TextAlignment par défaut de sorte que le bord droit du texte soit 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 référence de coordonnées de l’élément.

FlowDirection pour Image et MediaElement

Si vous définissez FlowDirection sur RightToLeft pour une image, le contenu visuel d’une image est retourné horizontalement. Toutefois, un élément Image n’hérite pas de la valeur FlowDirection d’un élément parent. En règle générale, vous souhaitez uniquement un comportement de basculement 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 propriété FlowDirection dans code-behind. Envisagez d’identifier l’élément Image par la directive x:Uid et de spécifier les valeurs FlowDirection 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.

MediaElement n’hérite pas non plus de la valeur FlowDirection d’un élément parent. Si vous définissez explicitement FlowDirection sur RightToLeft sur MediaElement, la zone d’affichage multimédia est retournée horizontalement, de la même façon qu’une image s’inverse. Cela devrait être encore plus rare que image, car il est probable que toute 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 n’importe quelle 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 de 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