Avalonia如何封装实现指定组件允许拖动的工具类


今天小编给大家分享一下Avalonia如何封装实现指定组件允许拖动的工具类的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。创建Avalonia的MVVM项目,命名DragDemo,然后将项目的Nuget包更新到预览版更新完成以后ViewLocatorApp.axaml会报错,修改ViewLocator.cs为下面的代码添加Avalonia.Themes.Fluent,因为预览版本的包已经独立需要单独安装打开App.axaml文件,修改为以下代码打开Vi免费云主机域名ews/MainWindow.axaml在头部添加以下代码,让窗口无边框,设置指定窗口Height=”38″ Width=”471″,参数让其不要占用整个屏幕,以下代码在上面窗口用于设置窗口无边框然后打开/Views/MainWindow.axaml.cs文件,将边框设置成无边框,并且设置窗体透明为WindowTransparencyLevel.Transparent效果图如下,因为限制了窗体最大大小,并且在按钮上面添加了透明区块,这样看起来就像是悬浮了然后我们开始写指定组件拖动工具类,创建DragControlHelper.cs以下就是封装的工具类 定义了一个ConcurrentDictionary静态参数,指定组件为KeyValueDragModuleDragModule模型中定义了拖动的逻辑在调用StartDrag的时候传递需要拖动的组件,他会创建一个DragModule对象,创建的时候会创建定时器,当鼠标被按下时启动定时器,当鼠标被释放时定时器被停止,定时器用于平滑更新窗体移动,如果直接移动窗体会抖动。打开MainWindow.axaml.cs,修改成以下代码 ,在渲染成功以后拿到Border(需要移动的组件),添加到DragControlHelper.StartDrag(border);中,然后再OnUnloaded的时候将Border再卸载掉效果展示:以上就是“Avalonia如何封装实现指定组件允许拖动的工具类”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注百云主机行业资讯频道。

相关推荐: javascript变量的声明与命名规范实例分析

本篇内容主要讲解“javascript变量的声明与命名规范实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript变量的声明与命名规范实例分析”吧!JavaScript对换行、缩进、空格不敏感。每…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/16 18:22
下一篇 05/16 18:22

相关推荐