如何在 xamarin.forms 中支持从右到左

How to support right-to-left in xamarin.forms

如何在 xamarin.forms 中支持从右到左的页面方向?我尝试了不同的布局,例如 RelativeLayoutStackLayout,并将其 HorizontalOptions 设置为 startend,但它不会交换元素。有人知道我们如何实现这一目标吗?

Xamarin 已经开始(或至少宣布)国际化工作,包括 RTL。目前还没有。例如,解决方法是ListView是创建多个LTR/RTL方向的列表项模板,并根据当前UI文化使用。对于其他控件,您最好的选择是为每种控件类型实现一个渲染器,并根据 UI 文化更改其 HorizontalOptionsXAlignment。你基本上是被迫自己动手的。

我已经创建了自定义标记扩展,将帮助您使 rtl 和 ltr 布局支持扩展具有这些类型:

  • 网格长度
  • 布局选项
  • 文本对齐
  • 整数
  • 字符串
  • ResourceKey
  • 厚度

EX:如果你想让你在语言为阿拉伯语时标记 Horizo​​ntalOptions rtl,在语言为英语时标记为 ltr,你可以这样做: Horizo​​ntalOptions="{UIExtensions:UIDirection Type=LayoutOption, LTR=Start, RTL=End}"

https://gist.github.com/ads90/ff5c69410d2654dcad3ed8d275d7ca20