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;
}
就酱,可以啦~

浙公网安备 33010602011771号