Prise en charge bidirectionnelle pour les applications Windows Forms
Vous pouvez utiliser Visual Studio pour créer des applications Windows prenant en charge les langues bidirectionnelles (s'écrivant de droite à gauche), telles que l'arabe et l'hébreu. Cela inclut des formulaires standard, des boîtes de dialogue, des formulaires MDI et de tous les contrôles que vous pouvez utiliser dans ces formulaires ; c'est-à-dire, tous les objets de l'espace de noms Control.
Prise en charge de la culture
La culture et les paramètres de culture de l'interface utilisateur déterminent la façon dont une application utilise les dates, les heures, les monnaies, ainsi que d'autres informations. Pour les langues bidirectionnelles, la prise en charge de la culture et de la culture de l'interface utilisateur est identique à celle de toute autre langue. Pour plus d'informations, consultez Classes spécifiques à la culture pour les Windows Forms et les Web Forms globaux et Classes spécifiques à la culture pour les Windows Forms et les Web Forms globaux et Classes spécifiques à la culture pour les Windows Forms et les Web Forms globaux et Classes spécifiques à la culture pour les Windows Forms et les Web Forms globaux.
Propriétés RightToLeft et RightToLeftLayout
La classe Control de base, de laquelle les formulaires dérivent, inclut une propriété RightToLeft que vous pouvez définir de façon à modifier le sens de lecture d'un formulaire et de ses contrôles. Si vous définissez la propriété RightToLeft du formulaire, les contrôles du formulaire héritent, par défaut, de ce paramètre. Toutefois, vous pouvez également définir la propriété RightToLeft de façon individuelle pour la plupart des contrôles. Pour plus d'informations, consultez Comment : afficher du texte de droite à gauche dans les Windows Forms pour la globalisation et Comment : afficher du texte de droite à gauche dans les Windows Forms pour la globalisation et Comment : afficher du texte de droite à gauche dans les Windows Forms pour la globalisation et Comment : afficher du texte de droite à gauche dans les Windows Forms pour la globalisation et Comment : afficher du texte de droite à gauche dans les Windows Forms pour la globalisation.
L'impact de la propriété RightToLeft peut varier d'un contrôle à l'autre. Dans certains contrôles, la propriété définit uniquement le sens de lecture, comme dans les contrôles Button, TreeView et ToolTip. Pour d'autres, la propriété RightToLeft modifie à la fois l'ordre de lecture et la disposition. C'est le cas pour les contrôles RadioButton, ComboBox et CheckBox. D'autres contrôles nécessitent que la propriété RightToLeftLayout soit appliquée de façon à refléter sa disposition de droite à gauche. Le tableau suivant détaille l'impact des propriétés RightToLeft et RightToLeftLayout sur les contrôles Windows Forms.
Contrôle/Composant |
Impact de la propriété RightToLeft |
Impact de la propriété RightToLeftLayout |
Effet miroir requis ? |
---|---|---|---|
Définit le sens de lecture de droite à gauche. Inverse TextAlign, ImageAlign et TextImageRelation |
Aucun effet |
Non |
|
La case à cocher s'affiche à droite du texte |
Aucun effet |
Non |
|
Toutes les cases à cocher s'affichent à droite du texte |
Aucun effet |
Non |
|
Aucun impact. Dépend de la langue du système d'exploitation |
Aucun effet |
Non |
|
Les éléments du contrôle de la zone de liste déroulante sont alignés à droite |
Aucun effet |
Non |
|
S'affiche aligné à droite avec un ordre de lecture de droite à gauche |
Aucun effet |
Non |
|
S'affiche aligné à droite avec un ordre de lecture de droite à gauche |
Aucun effet |
Non |
|
Affecte le sens de lecture de droite à gauche et la disposition du contrôle |
Aucun effet |
Non |
|
Aucun impact. Dépend de la langue du système d'exploitation |
Reflète le contrôle |
Oui |
|
Aligne à gauche les boutons haut et bas |
Aucun effet |
Non |
|
Non pris en charge |
Aucun effet |
Non |
|
Dépend de la langue du système d'exploitation |
Aucun effet |
Non |
|
Définit le sens de lecture de droite à gauche et inverse les barres de défilement |
Reflète le formulaire |
Oui |
|
La légende s'affiche alignée à droite. Les contrôles enfants peuvent hériter de cette propriété |
Utilisez un TableLayoutPanel dans le contrôle afin de prendre en charge la mise en miroir de droite à gauche. |
Non |
|
Commence avec la case de défilement (curseur) alignée à droite |
Aucun effet |
Non |
|
Non requise |
Aucun effet |
Non |
|
Affiché aligné à droite. Inverse TextAlign et ImageAlign |
Aucun effet |
Non |
|
Affiché aligné à droite. Inverse TextAlign et ImageAlign |
Aucun effet |
Non |
|
Les éléments sont alignés à droite. |
Aucun effet |
Non |
|
Définit l'ordre de lecture de droite à gauche. Les éléments restent alignés à gauche |
Reflète le contrôle |
Oui |
|
Affiché aligné à droite avec un ordre de lecture de droite à gauche au moment de l'exécution (pas à celui du design) |
Aucun effet |
Non |
|
Affiche le texte de droite à gauche. |
Aucun effet |
Non |
|
Aucun impact. Dépend de la langue du système d'exploitation |
Reflète le contrôle |
Oui |
|
Non pris en charge |
Non pris en charge |
Non |
|
Les boutons haut et bas sont alignés à gauche |
Aucun effet |
Non |
|
Aucun impact. Dépend de la langue du système d'exploitation |
Aucun effet |
Non |
|
Aucun impact. Dépend de la langue du système d'exploitation |
Aucun effet |
Non |
|
Les contrôles enfants peuvent hériter de cette propriété |
Utilisez un TableLayoutPanel dans le contrôle pour la prise en charge de droite à gauche |
Oui |
|
Non pris en charge |
Aucun effet |
Non |
|
Aucun impact. Dépend de la langue du système d'exploitation |
Aucun effet |
Non |
|
La barre de défilement verticale s'aligne à gauche et la barre de défilement horizontale commence à gauche |
Aucun effet |
Non |
|
Non pris en charge |
Non pris en charge |
Non |
|
Aucun impact |
Reflète le contrôle |
Oui |
|
La case d'option s'affiche à droite du texte |
Aucun effet |
Non |
|
Les éléments du contrôle comprenant du texte s'affichent de droite à gauche, avec un ordre de lecture de droite à gauche |
Aucun effet |
Non |
|
Aucun impact. Dépend de la langue du système d'exploitation |
Aucun effet |
Non |
|
La disposition du panneau est inversée ; la barre de défilement verticale apparaît sur la gauche ; la barre de défilement horizontale commence à droite |
Utilisez un TableLayoutPanel pour refléter l'ordre des contrôles enfants |
Non |
|
Non pris en charge |
Aucun effet |
Non |
|
Non prise en charge ; utilisez plutôt un StatusStrip |
Aucun effet ; utilisez plutôt un StatusStrip |
Non |
|
Aucun impact |
Reflète le contrôle |
Oui |
|
Affiche le texte de droite à gauche, avec un ordre de lecture de droite à gauche |
Aucun effet |
Non |
|
Non requise |
Non requise |
Non |
|
Non affectée par cette propriété ; utilisez plutôt un ToolStrip |
Aucun effet ; utilisez plutôt un ToolStrip |
Oui |
|
Définit l'ordre de lecture de droite à gauche |
Aucun effet |
Non |
|
Le défilement ou le suivi commence à droite ; lorsque l'Orientation est verticale, les graduations commencent à droite |
Aucun effet |
Non |
|
Définit uniquement l'ordre de lecture de droite à gauche |
Reflète le contrôle |
Oui |
|
La barre de défilement verticale apparaît à gauche ; le curseur de la barre de défilement horizontale se trouve à droite |
Aucune prise en charge directe ; utilisez un TableLayoutPanel |
Non |
|
Affiché sur le côté gauche au lieu du côté droit des contrôles à défilement |
Aucun effet |
Non |
Encodage
Windows Forms prend en charge Unicode, par conséquent, vous pouvez inclure tout jeu de caractères lorsque vous créez vos applications bidirectionnelles. Toutefois, tous les contrôles Windows Forms ne prennent pas en charge Unicode sur l'ensemble des plateformes. Pour plus d'informations, consultez Encodage et globalisation des applications Windows Forms.
GDI+
Vous pouvez utiliser GDI+ pour dessiner du texte avec un ordre de lecture de droite à gauche. La méthode DrawString, utilisée pour dessiner du texte, prend en charge un paramètre StringFormat auquel vous pouvez affecter le membre DirectionRightToLeft de l'énumération StringFormatFlags afin d'inverser le point d'origine du texte.
Boîtes de dialogue courantes
Les outils système, tels que la boîte de dialogue Ouvrir, sont contrôlés par Windows. Ils héritent des éléments de langue du système d'exploitation. Si votre version de Windows dispose des paramètres de langue corrects, ces boîtes de dialogue fonctionneront correctement avec les langues bidirectionnelles.
De même, les boîtes de message passent par le système d'exploitation et prennent en charge le texte bidirectionnel. Les légendes des boutons des boîtes de message se basent sur le paramètre de langue actuel. Par défaut, les boîtes de message n'utilisent pas l'ordre de lecture de droite à gauche, mais vous pouvez spécifier un paramètre pour l'utiliser lors de leur affichage. Pour plus d'informations, consultez Comment : créer des boîtes de message pour des Windows Forms bidirectionnelles.
RightToLeft, barres de défilement et ScrollableControl
Il existe actuellement une limitation dans les Windows Forms qui empêche toutes les classes dérivées de ScrollableControl d'agir correctement lorsque RightToLeft est activé et AutoScroll a la valeur Yes. Par exemple, vous placez un contrôle Panel, ou une classe de conteneur dérivée de Panel (par exemple FlowLayoutPanel ou TableLayoutPanel), dans votre formulaire. Si vous affectez Yes à AutoScroll dans le conteneur, puis si vous affectez Right à la propriété Anchor sur un ou plusieurs contrôles du conteneur, aucune barre de défilement n'apparaîtra. La classe dérivée de ScrollableControl agit comme si AutoScroll avait la valeur No.
Actuellement, la seule solution consiste à imbriquer ScrollableControl dans un autre ScrollableControl. Par exemple, si la classe TableLayoutPanel doit fonctionner dans ce cas, vous pouvez la placer dans un contrôle Panel et affecter à la propriété AutoScroll de Panel la valeur Yes.
Effet miroir
L'effet miroir est l'inversement de la disposition des éléments de l'interface utilisateur de sorte qu'ils se présentent de droite à gauche. Dans un Windows Form mis en miroir, par exemple, les boutons Réduire, Agrandir et Fermer s'affichent à gauche, dans la barre de titre, et non pas à droite.
L'affectation de true à un formulaire ou à la propriété RightToLeft d'un contrôle inverse le sens de lecture des éléments sur un formulaire, mais cela n'inverse pas la disposition de droite à gauche, c'est-à-dire, que cela ne provoque pas la mise en miroir. Par exemple, les boutons Réduire, Agrandir et Fermer de la barre de titre du formulaire ne se déplacent pas à gauche. De même, certains contrôles, tels que le contrôle TreeView, requièrent une mise en miroir afin de modifier leur affichage pour s'adapter à l'arabe ou à l'hébreu. Vous pouvez refléter ces contrôles en définissant la propriété RightToLeftLayout.
Vous pouvez créer des versions mises en miroir des contrôles ci-dessous :
Certains contrôles sont scellés. Par conséquent, vous ne pouvez pas dériver de nouveau contrôle à partir de ceux-ci. Il s'agit notamment des contrôles ImageList et ProgressBar.
Voir aussi
Concepts
Prise en charge bidirectionnelle pour les applications Web ASP.NET