| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- namespace Terminal.Gui.ViewBase;
- public partial class View
- {
- /// <summary>
- /// Gets or sets the user actions that are enabled for the arranging this view within it's <see cref="SuperView"/>.
- /// </summary>
- /// <remarks>
- /// <para>
- /// See the View Arrangement Deep Dive for more information: <see href="https://gui-cs.github.io/Terminal.Gui/docs/arrangement.html"/>
- /// </para>
- /// </remarks>
- /// <example>
- /// <para>
- /// This example demonstrates how to create a resizable splitter between two views using <see cref="ViewArrangement.LeftResizable"/>:
- /// </para>
- /// <code>
- /// // Create left pane that fills remaining space
- /// View leftPane = new ()
- /// {
- /// X = 0,
- /// Y = 0,
- /// Width = Dim.Fill (Dim.Func (_ => rightPane.Frame.Width)),
- /// Height = Dim.Fill (),
- /// CanFocus = true
- /// };
- ///
- /// // Create right pane with resizable left border (acts as splitter)
- /// View rightPane = new ()
- /// {
- /// X = Pos.Right (leftPane) - 1,
- /// Y = 0,
- /// Width = Dim.Fill (),
- /// Height = Dim.Fill (),
- /// Arrangement = ViewArrangement.LeftResizable,
- /// BorderStyle = LineStyle.Single,
- /// SuperViewRendersLineCanvas = true,
- /// CanFocus = true
- /// };
- /// rightPane.Border!.Thickness = new (1, 0, 0, 0); // Only left border
- ///
- /// container.Add (leftPane, rightPane);
- /// </code>
- /// <para>
- /// The right pane's left border acts as a draggable splitter. The left pane's width automatically adjusts
- /// to fill the remaining space using <c>Dim.Fill</c> with a function that subtracts the right pane's width.
- /// </para>
- /// </example>
- public ViewArrangement Arrangement { get; set; }
- }
|