设计个窗口定位器
目的
当窗口显示后,它应该出现在什么位置?
我经常需要让窗口显示在:父窗口中心(可能是个弹窗),鼠标位置(可能是填写信息的窗口),或者屏幕右下角(可能是个通知框)
不需要对窗口的坐标进行显式指定,而只需指定大体的方位
锚点定义
一个有尺寸的参考对象被分为9个点,可以定义枚举分别为:TopLeft, TopCenter...
参考对象
参考对象有三个,分别为:
- 屏幕
- 父窗口
- 鼠标位置
目标对象
即需要显示的窗口
规则
先根据参考对象锚点、尺寸、位置、计算出定位点在屏幕上的位置
再根据目标对象锚点、尺寸匹配到具体位置
其他细节考虑
- 二次指定偏移
- 溢出屏幕钳制
- 任务栏方位对整体位置的影响
最后
这个思路来自于魔兽世界的UI设计模式(我不确定是不是这样的,因为我每次写的时候都毛不准)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步