FrameworkElement.FlowDirection Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 FlowDirection
RightToLeft
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
commeRightToLeft
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 RightToLeft
image 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.