RTL 阿拉伯文文本,句号在结尾而不是开头
RTL Arabic text, full stop's at the end not beginning
请看下面的德图文本框在开头正确地加上了句号:
在 Watch Window 和内存字符串变量中,FullStop 错误地位于末尾:
这样做的结果是,当我以图形方式处理字符串时,句号(又名点)位于错误的位置,我应该如何在开始时移动它?
您可以使用 Visual Studio 创建基于 Windows 的支持双向(从右到左)语言(例如阿拉伯语和希伯来语)的应用程序,您需要设置 Control.RightToLeft Property
Gets or sets a value indicating whether control's elements are aligned to support locales using right-to-left fonts.
but helped identify the solution.
如果您想在带有变量的代码中获取 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>
或以下任一答案:
请看下面的德图文本框在开头正确地加上了句号:
在 Watch Window 和内存字符串变量中,FullStop 错误地位于末尾:
这样做的结果是,当我以图形方式处理字符串时,句号(又名点)位于错误的位置,我应该如何在开始时移动它?
您可以使用 Visual Studio 创建基于 Windows 的支持双向(从右到左)语言(例如阿拉伯语和希伯来语)的应用程序,您需要设置 Control.RightToLeft Property
Gets or sets a value indicating whether control's elements are aligned to support locales using right-to-left fonts.
如果您想在带有变量的代码中获取 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>
或以下任一答案: