GeWuYou f3d45169cd refactor(pause): 将暂停状态变化事件改为标准事件模式
- 将 OnPauseStateChanged 事件从 Action<PauseGroup, bool> 类型改为 EventHandler<PauseStateChangedEventArgs>
- 添加 PauseStateChangedEventArgs 类来封装事件数据
- 更新所有事件处理方法的签名以匹配新的事件参数
- 修改文档中相关的事件处理代码示例
- 在 PauseStackManager 中添加 RaisePauseStateChanged 方法统一处理事件触发
- 更新测试代码以适应新的事件处理方式
2026-03-21 21:13:53 +08:00

107 lines
3.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using GFramework.Game.Abstractions.Enums;
using GFramework.Game.Abstractions.Routing;
namespace GFramework.Game.Abstractions.UI;
/// <summary>
/// UI页面行为接口定义了UI页面的生命周期方法和状态管理
/// </summary>
public interface IUiPageBehavior : IRoute
{
/// <summary>
/// 获取或设置当前UI句柄。
/// </summary>
/// <value>
/// 表示当前UI句柄的可空类型 <see cref="UiHandle"/>。
/// </value>
/// <remarks>
/// 此属性允许获取或设置与当前上下文关联的UI句柄。若未设置则其值为 null。不可重入的ui句柄通常为null
/// </remarks>
UiHandle? Handle { get; set; }
/// <summary>
/// 获取当前UI层的实例。
/// </summary>
/// <value>
/// 返回与当前上下文关联的 <see cref="UiLayer"/> 实例。
/// </value>
/// <remarks>
/// 此属性用于访问与当前上下文关联的UI层对象通常用于管理UI的层次结构和交互逻辑。
/// </remarks>
UiLayer Layer { get; }
/// <summary>
/// 获取一个布尔值,指示当前操作是否为重入操作。
/// </summary>
/// <remarks>
/// 重入操作通常指在同一个执行上下文中多次调用相同的方法或逻辑。
/// 此属性可用于检测并避免重复执行可能导致异常或不一致状态的操作。
/// </remarks>
bool IsReentrant { get; }
/// <summary>
/// 获取页面视图对象。
/// </summary>
/// <returns>页面视图实例。</returns>
object View { get; }
/// <summary>
/// 获取页面的唯一键值,并显式细化 <see cref="IRoute.Key"/> 在 UI 路由中的语义。
/// </summary>
/// <value>返回当前对象的键标识符</value>
new string Key { get; }
/// <summary>
/// 获取页面是否处于活动状态
/// </summary>
bool IsAlive { get; }
/// <summary>
/// 获取页面是否可见
/// </summary>
bool IsVisible { get; }
/// <summary>
/// 获取页面是否为模态页面
/// </summary>
bool IsModal { get; }
/// <summary>
/// 获取页面是否阻断下层交互
/// </summary>
bool BlocksInput { get; }
/// <summary>
/// 页面进入时调用的方法
/// </summary>
/// <param name="param">页面进入时传递的参数,可为空</param>
void OnEnter(IUiPageEnterParam? param);
/// <summary>
/// 页面退出时调用的方法
/// </summary>
void OnExit();
/// <summary>
/// 页面暂停时调用的方法
/// </summary>
void OnPause();
/// <summary>
/// 页面恢复时调用的方法
/// </summary>
void OnResume();
/// <summary>
/// 页面被覆盖时调用(不销毁)
/// </summary>
void OnHide();
/// <summary>
/// 页面重新显示时调用的方法
/// </summary>
void OnShow();
}