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 @   ChristalXue  阅读(266)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示