Вы можете использовать Visual Studio для создания приложений на основе Windows, которые поддерживают двунаправленные (справа налево) языки, такие как арабский c и иврит, вам нужно будет установить Control.RightToLeft Свойство
Получает или задает значение, указывающее, выровнены ли элементы управления для поддержки языковых стандартов с использованием шрифтов с письмом справа налево.
Оба из них ответы не удались , но помогли идентифицировать решение .
Если вы хотите получить значение RTL в коде с переменными, вы должны полагаться на управляющие символы Unicode, чтобы пометить их как RTL.
var badWhenSetRTLtrue = textBox1.Text;
var goodWhenSetRTLtrue = ((Char)0x202B).ToString() + textBox1.Text;
Было бы разумно использовать их в качестве методов расширения:
partial class StringExtensions {
private const char LTR_EMBED = '\u202A';
private const char RTL_EMBED = '\u0x202B';
private const char POP_DIRECTIONAL = '\u202C';
private string ForceLTR(this string inputStr)
{
return LTR_EMBED + inputStr + POP_DIRECTIONAL;
}
private string ForceRTL(this string inputStr)
{
return RTL_EMBED + inputStr;
}
}
например:
textBox1.Text.ForceRTL();
Для всех, кто хочет сделать это с веб-браузер и HTML (вместо WinForms) вы можете установить direction: rtl;
, например:
<p style="direction: rtl;">טקסט</p>
Или любой из этих ответов: { ссылка }