我有一个要用于 Arabia 的 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
关于c# - 面板中的 RightToLeftLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26096550/