File: System\Windows\Forms\Panels\FlowLayoutSettings.cs
Web Access
Project: src\src\System.Windows.Forms\src\System.Windows.Forms.csproj (System.Windows.Forms)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System.ComponentModel;
using System.Windows.Forms.Layout;
 
namespace System.Windows.Forms;
 
[DefaultProperty(nameof(FlowDirection))]
public class FlowLayoutSettings : LayoutSettings
{
    internal FlowLayoutSettings(IArrangedElement owner)
        : base(owner)
    {
    }
 
    public override LayoutEngine LayoutEngine => FlowLayout.Instance;
 
    [SRDescription(nameof(SR.FlowPanelFlowDirectionDescr))]
    [DefaultValue(FlowDirection.LeftToRight)]
    [SRCategory(nameof(SR.CatLayout))]
    public FlowDirection FlowDirection
    {
        get => FlowLayout.GetFlowDirection(Owner!);
        set
        {
            FlowLayout.SetFlowDirection(Owner!, value);
            Debug.Assert(FlowDirection == value, "FlowDirection should be the same as we set it");
        }
    }
 
    [SRDescription(nameof(SR.FlowPanelWrapContentsDescr))]
    [DefaultValue(true)]
    [SRCategory(nameof(SR.CatLayout))]
    public bool WrapContents
    {
        get => FlowLayout.GetWrapContents(Owner!);
        set
        {
            FlowLayout.SetWrapContents(Owner!, value);
            Debug.Assert(WrapContents == value, "WrapContents should be the same as we set it");
        }
    }
 
    public void SetFlowBreak(object child, bool value)
    {
        ArgumentNullException.ThrowIfNull(child);
 
        IArrangedElement element = LayoutEngine.CastToArrangedElement(child);
        if (GetFlowBreak(child) != value)
        {
            CommonProperties.SetFlowBreak(element, value);
        }
    }
 
    public bool GetFlowBreak(object child)
    {
        ArgumentNullException.ThrowIfNull(child);
 
        IArrangedElement element = LayoutEngine.CastToArrangedElement(child);
        return CommonProperties.GetFlowBreak(element);
    }
}