在Avalonia中实现无边框可拖动窗口需设WindowStyle="None"并启用ExtendClientAreaToDecorationsHint,再通过TitleBar的PointerPressed事件调用BeginMoveDrag,且须校验左键按下、背景非空、子控件设IsHitTestVisible="False"。

在 Avalonia 中创建无边框但可拖动的窗口,关键在于禁用默认窗口装饰,并通过指定区域(如标题栏)启用拖动行为。Avalonia 本身不提供像 WPF 的 DragMove() 那样直接的方法,但可通过 BeginMoveDrag 手动触发窗口拖动。
设置窗口为无边框
在 XAML 中将 Window 的 WindowStyle 设为 None,并关闭系统菜单和最大化/最小化按钮:
<Window xmlns="https://github.com/avaloniaui"
WindowStyle="None"
CanResize="True"
MinWidth="400" MinHeight="300"
ExtendClientAreaToDecorationsHint="True">登录后复制
ExtendClientAreaToDecorationsHint="True" 允许自定义标题栏区域“接管”系统装饰区,是实现拖动的前提之一。
添加可拖动区域(例如自定义标题栏)
在窗口顶部添加一个 Panel(如 Grid 或 Border),并为其绑定鼠标事件:
标签: git windows github 显示器 ai win
还木有评论哦,快来抢沙发吧~