c# - RTL 阿拉伯语文本,句号在结尾而不是开始
解决方案
您可以使用 Visual Studio 创建支持双向(从右到左)语言(如阿拉伯语和希伯来语)的基于 Windows 的应用程序,您需要设置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();
对于任何想要使用 Web 浏览器和 HTML(而不是 WinForms)的人,您可以设置direction: rtl;
,例如:
<p style="direction: rtl;">טקסט</p>
推荐阅读
- javascript - Angular 6列表交错动画显示列表项两次
- python - 按下登录按钮时如何接收 QLineEdit 输入?
- angular - Angular 中的“let”和“const”有什么区别?
- android - LocationService ionic google-maps 对象在 ios 中失败,但在 android 中有效
- javascript - 根据 JSON 文件中的键值对转换 JavaScript 数组。
- php - PHP imap 不附加大邮件
- javascript - 使用循环创建数据数组
- javascript - TypeScript var scope versus JavaScript var scope
- php - 用于排序的 orderColumn 不适用于 yajra 数据表
- node.js - 没有导出的成员