2

有没有办法将 SplitContainerControl 的拆分器放置在控件大小的百分比位置,即使它的容器被调整大小也能保持?或者,另一方面,将面板的大小设置为百分比值?

4

3 回答 3

5

如果将SplitContainerControl.FixedPanel属性设置为该SplitFixedPanel.None值,则面板的宽度(或高度)会在调整容器大小时按比例更改。因此,不要在 SplitContainerControl 中使用固定面板:

splitContainerControl1.FixedPanel = DevExpress.XtraEditors.SplitFixedPanel.None;
splitContainerControl1.SplitterPosition = splitContainerControl1.Width / 3;
于 2013-08-14T07:11:38.673 回答
2

根据百分比覆盖Control.OnLayout和设置。SplitContainerControl.SplitterPosition

于 2013-08-13T23:32:47.413 回答
1

解决方案 1:参考:DevExpress:SplitContainerControl - 默认拆分器位置为 50%

要调整拆分器位置,只需将SplitContainerControl.SplitterPosition属性设置为控件的一半大小。例如,如果您希望设置垂直 SplitContainerControl 的拆分器位置,请使用以下代码片段:

private void Form1_Load(object sender, EventArgs e)
{
    splitContainerControl1.SplitterPosition = splitContainerControl1.Height / 2; 
}

解决方案2:

如果没有固定面板,则SplitterPosition属性指定拆分器从容器的左边缘或上边缘开始的位置(根据Horizo​​ntal属性)。

如果 FixedPanel 属性设置为SplitFixedPanel.None 值,则面板的宽度(或高度)会在调整容器大小时按比例更改。

更改 Form.Shown 或 Form.SizeChanged 事件处理程序上的拆分器位置。//首先设置FixedPanel属性

splitContainerControl1.FixedPanel = DevExpress.XtraEditors.SplitFixedPanel.None;

那么您可以使用 Parnet 控件的 Control.ClientSizeChanged 事件,如下所示:

private void ParentControl_ClientSizeChanged(Object sender, EventArgs e) 
{

   splitContainerControl1.SplitterPosition = splitContainerControl1.Width / 2;
   or
   splitContainerControl1.SplitterPosition = ParentControl.Width / 2;   

}
于 2013-08-14T09:15:57.860 回答