Langage

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 l’une ou l’autre LeftToRight ou RightToLeft. FlowDirection La définition RightToLeft sur n’importe quel élément définit l’alignement à droite, l’ordre de lecture à 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 .RightToLeft Si vous examinez l’interface utilisateur produite par ce code XAML, le rectangle « Milliseconduse » apparaît en haut à droite, et non en haut à gauche, comme c’est le cas par FlowDirection 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. En fait, le paramètre FlowDirection à RightToLeft appliquer doit produire un comportement approprié de droite à gauche et le 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 logiques qui répondent à FlowDirection ce 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 FlowDirection valeur de son parent dans l’arborescence d’objets. Tout é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 comportement de FrameworkElement changent :

  • Dans l’élément, le cadre de coordonnées de référence est retourné horizontalement afin 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 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 des modifications de référence. « (0, 0) » dans un canevas est le coin supérieur droit. La colonne « 0 » dans une grille à des fins de Grid.Column est la colonne la plus à droite.
  • Dans la composition du modèle d’un contrôle, les mêmes modifications de disposition s’appliquent. Par exemple, si vous définissez FlowDirectionRightToLeft comme pour un RadioButton, le graphique de bouton cliquable apparaît à droite du contenu de l’étiquette de texte, car la grille dans le modèle RadioButton traite désormais « 0 » comme 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 des conteneurs de texte tels que TextBlock ou TextBox ne retourne pas horizontalement si FlowDirection c’est RightToLeftle cas, ni la chaîne entière ni les caractères individuels ni les glyphes ne sont retournés. L’ordre des éléments inline d’un InlineCollection ne change pas non plus. Cela permet de combiner du contenu dans une application de droite à gauche, comme l’inclusion de chaînes de langue anglaise délibérée dans une interface utilisateur de 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 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é 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 de positionnement 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 un comportement de découpage d’image dans les images qui sont pertinentes pour la disposition, mais pas nécessairement aux éléments qui ont du texte incorporé ou d’autres composants qui n’auraient pas de sens retourné 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 RightToLeftsur , ou définir la FlowDirection propriété dans code-behind. Envisagez d’identifier l’élément Image par directive x :Uid et de spécifier des FlowDirection valeurs en tant que ressource RESW afin que vos experts de localisation puissent modifier cette valeur ultérieurement sans modifier le code XAML ou le code.

MediaPlayerElement n’hérite FlowDirection pas non plus de la valeur d’un élément parent. Si vous définissez explicitement comme RightToLeft sur MediaPlayerElement, la zone d’affichage multimédia est retournée horizontalementFlowDirection, similaire à la façon dont une image retourne. Cela devrait être encore plus rare que l’image, car il est probable que toute source multimédia utilisée dans le contenu localisé comporte 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 favorisent pas les 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 ( WebView.Source Uniform Resource Identifier) en tant que ressource RESW sous forme de chaîne. WebView et WebViewBrush n’héritent pas 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