Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Visual Studio можно использовать для создания приложений под управлением Windows, поддерживающих двунаправленные (справа налево) языки, такие как арабский и иврит. Сюда входят стандартные формы, диалоговые окна, формы MDI и все элементы управления, с которыми можно работать в этих формах, то есть все объекты в Control пространстве имен.
Поддержка культурных особенностей
Параметры культуры и пользовательского интерфейса определяют, как приложение работает с датами, временем, валютой и другой информацией. Поддержка языка и пользовательских региональных параметров такая же для двунаправленных языков, как и для других языков. Дополнительные сведения см. в разделе "Язык и региональные параметры" для глобальных форм Windows и веб-форм.
Свойства *RightToLeft* и *RightToLeftLayout*
Базовый Control класс, из которого являются производные формы, включает RightToLeft свойство, которое можно задать для изменения порядка чтения формы и его элементов управления. Если задать свойство формы RightToLeft , по умолчанию элементы управления в форме наследуют этот параметр. Однако свойство RightToLeft можно задать индивидуально для большинства элементов управления. Также смотрите Практическое руководство: Отображение текста справа налево в Windows Forms для глобализации.
Эффект RightToLeft свойства может отличаться от одного элемента управления к другому. В некоторых элементах управления свойство задает только порядок чтения, как в элементах управления Button, TreeView и ToolTip. В других элементах управления свойство RightToLeft изменяет как порядок чтения, так и расположение. К ним относятся элементы управления RadioButton, ComboBox и CheckBox. Другие элементы управления требуют RightToLeftLayout применения свойства для зеркального отображения его макета справа налево. В следующей таблице приведены сведения о том, как свойства RightToLeft и RightToLeftLayout влияют на отдельные элементы управления Windows Forms.
| Элемент управления или компонент | Эффект свойства RightToLeft | Эффект свойства RightToLeftLayout | Требуется зеркальное отображение? |
|---|---|---|---|
| Button | Задает порядок чтения RTL. Обратные TextAlign, ImageAlignи TextImageRelation | Нет эффекта | нет |
| CheckBox | Флажок отображается справа от текста | Нет эффекта | нет |
| CheckedListBox | Все флажки отображаются в правой части текста. | Нет эффекта | нет |
| ColorDialog | Не затронуты; зависит от языка операционной системы | Нет эффекта | нет |
| ComboBox | Элементы в комбинированном поле выровнены по правому краю | Нет эффекта | нет |
| ContextMenu | Отображается по правому краю с порядком чтения RTL | Нет эффекта | нет |
| DataGrid | Отображается по правому краю с порядком чтения RTL | Нет эффекта | нет |
| DataGridView | Влияет как на порядок чтения RTL, так и макет элемента управления | Нет эффекта | нет |
| DateTimePicker | Не затронуты; зависит от языка операционной системы | Зеркалирует управление | Да |
| DomainUpDown | Выравнивает по левому краю кнопки "вверх" и "вниз" | Нет эффекта | нет |
| ErrorProvider | Не поддерживается | Нет эффекта | нет |
| FontDialog | Зависит от языка операционной системы | Нет эффекта | нет |
| Form | Задает порядок чтения RTL и переключает направление полос прокрутки | Зеркальное отображение формы | Да |
| GroupBox | Подпись отображается по правому краю. Дочерние элементы управления могут наследовать это свойство. | TableLayoutPanel Использование элемента управления для поддержки зеркального отображения справа налево | нет |
| HScrollBar | Начинается с прямоугольника прокрутки (палец) с выравниванием по правому краю | Нет эффекта | нет |
| ImageList | Не требуется | Нет эффекта | нет |
| Label | Отображается по правому краю. Обратные и TextAlignImageAlign | Нет эффекта | нет |
| LinkLabel | Отображается по правому краю. Обратные и TextAlignImageAlign | Нет эффекта | нет |
| ListBox | Элементы выровнены по правому краю | Нет эффекта | нет |
| ListView | Задает порядок чтения для RTL; элементы остаются выровненными по левому краю | Зеркалирует управление | Да |
| MainMenu | Отображается по правому краю с порядком чтения RTL во время выполнения (не во время разработки) | Нет эффекта | нет |
| MaskedTextBox | Отображает текст справа налево. | Нет эффекта | нет |
| MonthCalendar | Не затронуты; зависит от языка операционной системы | Зеркалирует управление | Да |
| NotifyIcon | Не поддерживается | Не поддерживается | нет |
| NumericUpDown | Кнопки вверх и вниз выровнены по левому краю | Нет эффекта | нет |
| OpenFileDialog | В операционных системах с направлением текста справа налево для локализации диалогового окна установите свойство RightToLeft содержащей формы в RightToLeft.Yes. | Нет эффекта | нет |
| PageSetupDialog | Не затронуты; зависит от языка операционной системы | Нет эффекта | нет |
| Panel | Дочерние элементы управления могут наследовать это свойство | Используйте TableLayoutPanel в элементе управления для поддержки режима справа налево | Да |
| PictureBox | Не поддерживается | Нет эффекта | нет |
| PrintDialog | Не затронуты; зависит от языка операционной системы | Нет эффекта | нет |
| PrintDocument | Вертикальная полоса прокрутки перемещается влево, а горизонтальная полоса прокрутки начинается слева. | Нет эффекта | нет |
| PrintPreviewDialog | Не поддерживается | Не поддерживается | нет |
| ProgressBar | Не влияет на данное свойство | Зеркалирует управление | Да |
| RadioButton | Радиокнопка отображается справа от текста. | Нет эффекта | нет |
| RichTextBox | Элементы управления, содержащие текст, отображаются справа налево с порядком чтения RTL | Нет эффекта | нет |
| SaveFileDialog | Не затронуты; зависит от языка операционной системы | Нет эффекта | нет |
| SplitContainer | Макет панели перевернут; вертикальная полоса прокрутки отображается слева; горизонтальная полоса прокрутки начинается с правой | Используйте TableLayoutPanel, чтобы зеркально отразить порядок дочерних элементов управления. | нет |
| Splitter | Не поддерживается | Нет эффекта | нет |
| StatusBar | Не поддерживается; вместо этого используйте StatusStrip | Нет эффекта; вместо этого используйте StatusStrip | нет |
| TabControl | Не затрагивается этим свойством | Зеркалирует управление | Да |
| TextBox | Отображает текст справа налево с порядком чтения RTL | Нет эффекта | нет |
| Timer | Не требуется | Не требуется | нет |
| ToolBar | Не влияет на это свойство; вместо этого используйте ToolStrip | Нет эффекта; вместо этого используйте ToolStrip | Да |
| ToolTip | Задает порядок чтения RTL | Нет эффекта | нет |
| TrackBar | Прокрутка или трек начинается справа; когда Orientation вертикальный, тики появляются с правой стороны. | Нет эффекта | нет |
| TreeView | Задает только порядок чтения RTL | Зеркалирует управление | Да |
| UserControl | Вертикальная полоса прокрутки отображается слева, а горизонтальная полоса прокрутки имеет ползунок справа. | Нет прямой поддержки; используйте TableLayoutPanel | нет |
| VScrollBar | Отображается на левой стороне вместо правой стороны элементов управления прокрутки | Нет эффекта | нет |
Кодировка
Windows Forms поддерживает Юникод, поэтому при создании двухнаправленных приложений можно включить любой набор символов. Однако не все элементы управления Windows Forms поддерживают Юникод на всех платформах.
GDI+
Можно использовать GDI+ для рисования текста с порядком чтения справа налево. Метод DrawString, используемый для рисования текста, поддерживает параметр StringFormat, который можно установить как член DirectionRightToLeft перечисления StringFormatFlags, чтобы изменить начальную точку для текста.
Общие диалоговые окна
Системные инструменты, такие как диалоговое окно "Открыть файл", находятся под управлением Windows. Они наследуют элементы языка от операционной системы. Если вы используете версию Windows с правильными параметрами языка, эти диалоговые окна будут работать правильно с двунаправленными языками.
Аналогичным образом окна сообщений проходят через операционную систему и поддерживают двунаправленный текст. Подписи кнопок окна сообщений основаны на текущем параметре языка. По умолчанию поля сообщений не используют порядок чтения справа налево, но можно указать параметр для изменения порядка чтения при отображении полей сообщения.
RightToLeft, Scrollbars и ScrollableControl
В настоящее время в Windows Forms существует ограничение, препятствующее правильной работе всех классов, производных от ScrollableControl, когда RightToLeft включен и AutoScroll установлен в Yes. Например, предположим, что вы размещаете элемент управления, такой как Panel, либо класс контейнера, производный от Panel (например, FlowLayoutPanel или TableLayoutPanel), на своей форме. Если задать в контейнере AutoScroll как Yes, а затем для одного или нескольких элементов управления внутри контейнера задать свойство Anchor как Right, то полоса прокрутки никогда не отображается. Класс, производный от ScrollableControl, действует так, как если бы AutoScroll был установлен в No.
В настоящее время единственным решением является вложить ScrollableControl внутрь ScrollableControl. Например, если в этой ситуации необходимо, чтобы TableLayoutPanel работал, его можно поместить внутрь элемента управления Panel и установить параметр AutoScroll на Panel со значением Yes.
Зеркалирование
Зеркальное отображение относится к изменению расположения элементов пользовательского интерфейса так, чтобы они располагались справа налево. В зеркальной форме Windows Form, например, кнопки "Свернуть", "Развернуть" и "Закрыть" отображаются в левой части заголовка, а не в правой части.
Установка свойства RightToLeft формы или элемента управления на true изменяет порядок чтения элементов в форме, но при этом макет не изменяется на справа налево, то есть зеркальное отображение не происходит. Например, установка этого свойства не перемещает кнопки "Свернуть", " Развернуть" и "Закрыть " в строке заголовка формы слева от формы. Аналогичным образом, для некоторых элементов управления, таких как TreeView элемент управления, требуется зеркальное отображение, чтобы изменить их отображение, соответствующее арабскому или ивриту. Эти элементы управления можно зеркально отражать, задав RightToLeftLayout свойство.
Вы можете создать зеркальные версии следующих элементов управления:
Некоторые элементы управления запечатываются. Таким образом, вы не можете наследить новый элемент управления от них. К ним относятся элементы управления ImageList и ProgressBar.
См. также
.NET Desktop feedback