Avalonia无边框窗体拖拽问题

一般个人开发都会选择无边框的窗体作为登陆界面,然后在鼠标按下的事件中调用拖拽函数,在WPF中是这样的。
但是在Avalonia中按照以上思路之后发现界面上的ComboBox不能用了。。。奇奇怪怪的bug。
解决方法如下:
无边框窗体实现一下方法:
PointerPressed="InputElement_OnPointerPressed"

private void InputElement_OnPointerPressed(object? sender, PointerPressedEventArgs e)
        {
            if (e.Pointer.Type == PointerType.Mouse)
            {
                this.BeginMoveDrag(e);
            }
        }

然后呢,受到wpf冒泡事件和隧道事件的启发,感觉是点击控件的时候捕捉到了这个事件,导致ComboBox不正常了,所以需要单独给ComboBox写这个时间的处理逻辑,如下:

private void CmbSwitchLang_OnPointerPressed(object? sender, PointerPressedEventArgs e)
        {
            e.Handled = true;
        }

就酱,可以啦~

posted @ 2024-04-01 16:42  ChristalXue  阅读(484)  评论(0)    收藏  举报