Panel中的RightToLeftLayout
我有一个Windows项目(C#),我们将用于阿拉伯。 我们知道这个国家遵循右翼到左翼机制。 如何以RTL(从右到左)格式在面板中移动我的所有控件位置。 我已将属性’RightToLeft’和’RightToLeftLayout’设置为true,但它仅在窗体内移动控件而不是面板。 查看示例
当控件移动时,我已经应用了所述属性,这些属性只是在窗体上,但是面板内的控件保持原样。
你可以使用这个控件:)
class MyPanel:Panel { private bool myRightToLeftLayout=false; public bool MyRightToLeftLayout { get { return myRightToLeftLayout; } set { if (value != myRightToLeftLayout) { foreach (Control item in base.Controls) { try { item.RightToLeft = value==true?RightToLeft.No:RightToLeft.Yes; item.Location = new System.Drawing.Point(base.Size.Width - item.Size.Width - item.Location.X, item.Location.Y); } catch { } } myRightToLeftLayout = value; } } } }
结果是这样的
MyRightToLeftLayout = false
MyRightToLeftLayout = true
关于RightToLeftLayout的事实:
- 如果RightToLeft仅设置为Yes,则会生效。
- RightToLeftLayout是一个布尔属性,值为true或false RightToLeftLayout属性不由其子控件inheritance。
- 与RightToLeft属性不同,您需要将RightToLeftLayout单独设置为支持此属性的每个单独控件。
- RightToLeftLayout将更改其控件的原点并镜像坐标。 因此原点位于右上角而不是控件的左上角。 然后坐标将增加到左侧,而不是右侧。
所以根据第二点,你需要将它设置为所有单独的子元素
你可以做两件事:
首先,在Web应用程序的Web.config
文件中,将
元素的culture属性设置为’ar-SA’
其次,将每个页面元素的HTML dir属性设置为“rtl”