一般个人开发都会选择无边框的窗体作为登陆界面,然后在鼠标按下的事件中调用拖拽函数,在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;
}
就酱,可以啦~
标签:OnPointerPressed,ComboBox,边框,窗体,拖拽,Avalonia From: https://www.cnblogs.com/ChristalXue/p/18108833