可以在 Avalonia 应用程序中使用 Window.PositionChanged 事件来跟踪窗口的位置变化,然后在 Avalonia 应用程序中使用框架布局(或者手动计算)来更新窗口的位置。代码示例如下:
public class MainWindow : Window
{
private Point _previousPosition;
public MainWindow()
{
InitializeComponent();
// 订阅窗口位置变化事件
this.PositionChanged += OnPositionChanged;
}
// 窗口位置变化事件的处理程序
private void OnPositionChanged(object sender, PixelPointEventArgs e)
{
var newPosition = e.NewPixelPoint.ToPoint();
// 如果位置已经改变,则更新窗口位置
if (_previousPosition != newPosition)
{
// 保存新位置
_previousPosition = newPosition;
// 更新窗口位置
// 这里假设你使用了框架布局,可以直接设置窗口左上角的坐标
// 或者手动计算位置
// ...
}
}
}