File: System\Windows\Forms\Design\DateTimePickerDesigner.cs
Web Access
Project: src\src\System.Windows.Forms.Design\src\System.Windows.Forms.Design.csproj (System.Windows.Forms.Design)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System.Collections;
using System.Drawing;
using System.Windows.Forms.Design.Behavior;
 
namespace System.Windows.Forms.Design;
 
internal class DateTimePickerDesigner : ControlDesigner
{
    public DateTimePickerDesigner()
    {
        AutoResizeHandles = true;
    }
 
    /// <summary>
    ///  Adds a baseline SnapLine to the list of SnapLines related to this control.
    /// </summary>
    public override IList SnapLines
    {
        get
        {
            IList<SnapLine> snapLines = SnapLinesInternal;
 
            // A single text-baseline for the label (and linklabel) control.
            int baseline = DesignerUtils.GetTextBaseline(Control, ContentAlignment.MiddleLeft);
 
            // DateTimePicker doesn't have an alignment, so we use MiddleLeft and add a fudge-factor.
            baseline += 2;
            snapLines.Add(new SnapLine(SnapLineType.Baseline, baseline, SnapLinePriority.Medium));
 
            return snapLines.Unwrap();
        }
    }
 
    /// <summary>
    ///  Retrieves a set of rules concerning the movement capabilities of a component.
    ///  This should be one or more flags from the SelectionRules class. If no designer
    ///  provides rules for a component, the component will not get any UI services.
    /// </summary>
    public override SelectionRules SelectionRules
        => base.SelectionRules & ~(SelectionRules.TopSizeable | SelectionRules.BottomSizeable);
}