面板中的从右到左布局

Son*_*ite 4 c# winforms

我有一个 Windows 项目 (C#),我们将用于阿拉伯。正如我们所知,遵循从右到左机制的国家。如何以 RTL(从右到左)格式在面板中移动我的所有控件位置。我已将属性 'RightToLeft' 和 'RightToLeftLayout' 设置为 true,但它仅在表单内移动控件而不是面板。看例子

在此处输入图片说明

当控件移动时,我已经应用了所述属性,这些属性只是在窗体上,但面板内的控件保持原样。

Meh*_*loo 6

你可以使用这个控件:)

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;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

结果是这样的

MyRightToLeftLayout = false

在此处输入图片说明

MyRightToLeftLayout = true

在此处输入图片说明