mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-21 16:14:28 +08:00
97 lines
2.4 KiB
C#
97 lines
2.4 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
|
|||
|
|
namespace LanMountainDesktop.Models;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 融合桌面组件放置快照 - 用于在系统桌面(负一屏)上放置组件
|
|||
|
|
/// </summary>
|
|||
|
|
public sealed class FusedDesktopComponentPlacementSnapshot
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 放置实例ID(唯一标识)
|
|||
|
|
/// </summary>
|
|||
|
|
public string PlacementId { get; set; } = string.Empty;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 组件类型ID
|
|||
|
|
/// </summary>
|
|||
|
|
public string ComponentId { get; set; } = string.Empty;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// X 坐标(像素,相对于屏幕左上角)
|
|||
|
|
/// </summary>
|
|||
|
|
public double X { get; set; }
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Y 坐标(像素,相对于屏幕左上角)
|
|||
|
|
/// </summary>
|
|||
|
|
public double Y { get; set; }
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 宽度(像素)
|
|||
|
|
/// </summary>
|
|||
|
|
public double Width { get; set; } = 200;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 高度(像素)
|
|||
|
|
/// </summary>
|
|||
|
|
public double Height { get; set; } = 200;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Z-Index(用于控制组件层叠顺序)
|
|||
|
|
/// </summary>
|
|||
|
|
public int ZIndex { get; set; }
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 是否锁定位置(锁定后不可拖动)
|
|||
|
|
/// </summary>
|
|||
|
|
public bool IsLocked { get; set; }
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 创建深拷贝
|
|||
|
|
/// </summary>
|
|||
|
|
public FusedDesktopComponentPlacementSnapshot Clone()
|
|||
|
|
{
|
|||
|
|
return new FusedDesktopComponentPlacementSnapshot
|
|||
|
|
{
|
|||
|
|
PlacementId = PlacementId,
|
|||
|
|
ComponentId = ComponentId,
|
|||
|
|
X = X,
|
|||
|
|
Y = Y,
|
|||
|
|
Width = Width,
|
|||
|
|
Height = Height,
|
|||
|
|
ZIndex = ZIndex,
|
|||
|
|
IsLocked = IsLocked
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 融合桌面布局快照 - 包含所有在系统桌面上显示的组件
|
|||
|
|
/// </summary>
|
|||
|
|
public sealed class FusedDesktopLayoutSnapshot
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 是否启用融合桌面功能
|
|||
|
|
/// </summary>
|
|||
|
|
public bool IsEnabled { get; set; }
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 组件放置列表
|
|||
|
|
/// </summary>
|
|||
|
|
public List<FusedDesktopComponentPlacementSnapshot> ComponentPlacements { get; set; } = [];
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 创建深拷贝
|
|||
|
|
/// </summary>
|
|||
|
|
public FusedDesktopLayoutSnapshot Clone()
|
|||
|
|
{
|
|||
|
|
return new FusedDesktopLayoutSnapshot
|
|||
|
|
{
|
|||
|
|
IsEnabled = IsEnabled,
|
|||
|
|
ComponentPlacements = [.. ComponentPlacements.ConvertAll(p => p.Clone())]
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
}
|