Files
Ursa.Avalonia/src/Ursa/Controls/Dialog/Options/OverlayDialogOptions.cs
rabbitism 219ead2172 Add CanResize property to drawers and dialogs with corresponding UI controls
This commit introduces a new `CanResize` property to `DrawerOptions`, `OverlayDialogOptions`, and their respective controls. It also adds UI resizing functionality through the `DialogResizer` control, with styles adjusted to support different drawer positions. Code formatting and organization have been improved for readability across modified files.
2024-09-17 23:06:00 +08:00

67 lines
1.9 KiB
C#

namespace Ursa.Controls;
public enum HorizontalPosition
{
Left,
Center,
Right
}
public enum VerticalPosition
{
Top,
Center,
Bottom
}
public class OverlayDialogOptions
{
internal static OverlayDialogOptions Default { get; } = new();
public bool FullScreen { get; set; }
public HorizontalPosition HorizontalAnchor { get; set; } = HorizontalPosition.Center;
public VerticalPosition VerticalAnchor { get; set; } = VerticalPosition.Center;
/// <summary>
/// This attribute is only used when HorizontalAnchor is not Center
/// </summary>
public double? HorizontalOffset { get; set; } = null;
/// <summary>
/// This attribute is only used when VerticalAnchor is not Center
/// </summary>
public double? VerticalOffset { get; set; } = null;
/// <summary>
/// Only works for DefaultDialogControl
/// </summary>
public DialogMode Mode { get; set; } = DialogMode.None;
/// <summary>
/// Only works for DefaultDialogControl
/// </summary>
public DialogButton Buttons { get; set; } = DialogButton.OKCancel;
/// <summary>
/// Only works for DefaultDialogControl
/// </summary>
public string? Title { get; set; } = null;
/// <summary>
/// Only works for CustomDialogControl
/// </summary>
public bool? IsCloseButtonVisible { get; set; } = true;
[Obsolete] public bool ShowCloseButton { get; set; } = true;
public bool CanLightDismiss { get; set; }
public bool CanDragMove { get; set; } = true;
/// <summary>
/// The hash code of the top level dialog host. This is used to identify the dialog host if there are multiple dialog
/// hosts with the same id. If this is not provided, the dialog will be added to the first dialog host with the same
/// id.
/// </summary>
public int? TopLevelHashCode { get; set; }
public bool CanResize { get; set; }
}