部署DeepSeek模型,进群交流最in玩法!
立即加群
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Avalonia UI 实现无边框窗口拖动

Avalonia UI 实现无边框窗口拖动

原创
作者头像
Power
发布于 2025-04-01 16:06:12
发布于 2025-04-01 16:06:12
9400
代码可运行
举报
运行总次数:0
代码可运行

在 Avalnia 中的 Window 对象有一个名为 ExtendClientAreaChromeHints 的属性。设置该属性为 NoChrome 且 ExtendClientAreaToDecorationsHint为 True 之后,包含最大化、最小化按钮在内的系统标题栏就消失了。

另一个取消掉标题栏的方式是:设置窗体的 SystemDecorations 为 None 。

因为少了标题栏,所以就需要额外的代码实现拖动功能。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private void Element_OnPointerPressed(object? sender, PointerPressedEventArgs e)
{
    if (e.Pointer.Type == PointerType.Mouse) this.BeginMoveDrag(e);
}

只需要将任意元素的 PointerPressed 事件增加以上事件处理器即可在该元素上实现无边框拖动。

如果代码没有效果,可以先尝试设置一下元素的背景色为红色后再尝试。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C#自定义控件之-winform美化「建议收藏」
对于系统自带的窗体,博主实在不敢恭维,测试时使用方便快捷,但真正项目中无法使用,只因不美观的外表,每次都很头疼窗体的美化,这里列出一些需要解决的问题和自己收集到的解决方法,如有错误请指出。
全栈程序员站长
2022/08/27
3.1K0
C#自定义控件之-winform美化「建议收藏」
C# winform ——界面美化技巧
关于C#界面美化的一些小技巧 在不使用第三方控件如 IrisSkin 的前提下,依然可以对winform做出让人眼前一亮的美化
vv彭
2021/03/08
5.8K0
C# winform ——界面美化技巧
C# 主界面的扁平化
  此处分为两个步骤,第一步是更改winform自带的MainForm窗体属性,第二步是添加窗体事件。
zls365
2020/08/19
9570
Qt编写自定义控件67-通用无边框
在之前的一篇文章中写过一个通用的移动控件,作用就是用来传入任意的widget控件,可以在父类容器中自由移动。本篇文章要写的是一个通用的无边框类,确切的说这不叫控件应该叫组件才对,控件是要看得见的东西,有绘制需求的,而这个需要依附在控件上。在我们平时做的项目中,为了U界面的美观,很多会采用自定义无边框窗体来处理,自己美化标题栏等,都会面临一个相同的问题,就是设置好自定义无边框窗体以后,要自己处理窗体的移动和拉伸,如果有多个无边框窗体,很多人会想到每个地方都写重复的代码来实现移动或者拉伸,何不封装一个类来完成这个功能呢,直接传入窗体即可。在QDialog窗体中可以通过设置一个属性sizeGripEnabled来实现右下角的拉伸,这个还不足以满足所有的需求,很多时候我们还需要在四个角和上下左右都能拉伸大小,这个就需要重写了,安装事件过滤器,识别到鼠标移动到某个区域,鼠标形状自动变化,然后识别是否已经按下,按下的话做对应的处理,对应的处理核心就是重新设置窗体的XY轴坐标和大小。
feiyangqingyun
2019/10/16
1K0
Qt编写自定义控件67-通用无边框
win10 uwp 动画移动滑动条的滑块 拿到事件判断是否点击记录之前的值动画
堆栈网小伙伴问如何点击滑动条的时候,可以通过动画将滑块从原来的坐标移动到用户点击的坐标,同时用户拖动的时候不做动画 在后台代码添加两个事件,一个是按下,一个抬起,通过按下和抬起判断坐标可以知道用户是点击还是拖动。然后用上一个值和当前的值做动画就可以。
林德熙
2019/04/22
8070
WinForm 界面美化
添加最小化、退出事件的按钮,背景色BackColor和字体色Forecolor设置为与界面颜色较为搭配的,将按钮的FlatStyle设置为Popup,它会自己随着界面风格调整
全栈程序员站长
2022/08/24
2.2K0
WinForm 界面美化
封装avalonia指定组件允许拖动的工具类
创建Avalonia的MVVM项目,命名DragDemo ,然后将项目的Nuget包更新到预览版
tokengo
2023/02/28
9160
Qt开源作品16-通用无边框拖动拉伸
相信各位CS结构开发的程序员,多多少少都遇到过需要美化界面的事情,一般都不会采用系统的标题栏,这样就需要无边框标题栏窗体,默认的话无边框的标题栏都不支持拉伸和拖动的,毕竟去掉了标题栏则意味着失去了系统的窗体的属性,拉伸和拖动都需要自己写代码去实现,网上有很多类似的开源的方案,我也看过不少,总体来说复杂了些,对于初学者来说有可能看的云里雾里的,比如边框四周八个方位都可以自由拉伸这块,我的思路是针对设定的八个方位的区域进行识别鼠标是否按下,按下的哪个部位则执行什么拉伸策略,鼠标移到哪个位置则对应改变鼠标指针形状,更浅显易懂一些,至于拖动移动,还可以设置拖动的标题栏的高度等。
feiyangqingyun
2020/05/21
1.1K0
Qt开源作品16-通用无边框拖动拉伸
Electron 无边框窗口开启全局拖拽
最近有个需求,Electron 打开的窗口要实现拖拽功能,大概看了一眼 BrowserWindow 的 API 却只找到了一个 move 事件,这个事件默认是针对有边框窗口的,也即 frame: true 的窗口。
savokiss
2019/11/06
2.9K0
【FFmpeg】ffplay 命令行参数 ③ ( 关闭图形化显示窗口 -nodisp 参数 | 无边框窗口 -noborder 参数 | 设置起始音量 -volume 参数 )
ffplay 命令 的 -nodisp 参数 可以关闭 播放 视频时的 图形化窗口 , 即在播放视频 时不显示视频画面 ;
韩曙亮
2024/02/03
9720
【FFmpeg】ffplay 命令行参数 ③ ( 关闭图形化显示窗口 -nodisp 参数 | 无边框窗口 -noborder 参数 | 设置起始音量 -volume 参数 )
WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome)
发布于 2018-07-12 07:57 更新于 2018-09-05 05:46
walterlv
2018/09/18
6.8K0
WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome)
WPF:自动执行"机器人"程序若干注意事项
企业应用中,经常会遇到一些需要定时自动执行的程序来完成某些功能,比如:自动定时从第三方web service取回数据、定时对历史数据进行清理、定时向ftp上传业务数据... 这类程序,我习惯称为“机器人”程序,就象机器一样机械、高效、重复的执行某些任务。通常部署上线后,都是放在服务器上一直开着,不允许轻易被关闭,而且最好要有一个界面,随时可以手动方便控制状态或查看运行情况,一旦发生异常情况,能及时通知管理员(Email或短信之类) 如果是采用WPF技术开发,以下是几个需要注意的地方: 1、无边框窗体(防
菩提树下的杨过
2018/01/24
1.3K0
WPF:自动执行"机器人"程序若干注意事项
Qt开发-QT Quick
Row 则是一个单独的 Item ,专门用来管理其它 Item 的,后面介绍的几种布局,也是类似的。
码客说
2021/11/10
2.6K0
[UWP]占领标题栏
每一个有理想的UWP应用都会打标题栏的主意,尤其当微软提供 将 Acrylic 扩展到标题栏 这个功能后,大部分Windows 10的原生应用都不乖了,纷纷占领了标题栏的一亩三分地。这篇博客将介绍在UWP中如何自定义标题栏。
dino.c
2019/09/06
1.5K0
[UWP]占领标题栏
C#可视化程序设计课堂笔记 第四章
第四章 Windows窗体应用 4.2 使用Form窗体 4.2.1 窗体的常用属性 属性名 说明 Name 窗体对象名,用以在代码中标识 BackColor 窗体的背景色 Icon 窗体图标 BackgroundImage 背景图 FormBorderStyle 边框样式,7个可选,默认Sizable MaximizeBox 是否可以窗口最大化,默认为TRUE ShowInTaskbar 确定窗体是否出现在Windows任务栏中,默认为TRUE StartPosition 初始位置 TopMos
SingYi
2022/07/14
7160
C#可视化程序设计课堂笔记 第四章
【炫丽】从0开始做一个WPF+Blazor对话小程序
注 要使WPF支持Blazor,.NET版本必须是 6.0 或更高版本,本文所有示例使用的.NET 7.0,版本要求见链接,截图看如下文字:
沙漠尽头的狼
2022/11/08
8.3K0
【愚公系列】2023年09月 WPF控件专题 Window窗体属性和事件
Windows窗体是Microsoft .NET Framework中提供的一种可视化用户界面(GUI)组件,它提供了一个容器,可以在其中添加其他控件,例如按钮、文本框、标签等,以便用户与应用程序交互。通过向窗体添加控件,并使用事件处理程序来响应用户交互,可以创建功能强大的Windows桌面应用程序。
愚公搬代码
2023/09/18
5320
Qt Quick Windows 下实现无边框窗口阴影效果
Qt Quick 中实现一个无边框窗口阴影效果的中心思想是将 Window 容器背景设置为透明的,在 Windows 容器中添加一个填满窗口的容器(如 Page、Rectangle 等),然后将这个容器设置一些边距,再给这个容器附加一个阴影效果,实现的效果如下:
我与梦想有个约会
2020/02/21
2.4K0
Qt Quick Windows 下实现无边框窗口阴影效果
Qt编写数据可视化大屏界面电子看板7-窗体浮动
窗体浮动的场景也比较多,用途也比较大,比如视频监控模块,有时候需要调整大小和位置,而不是作为dock嵌入到布局中,一旦嵌入到布局中,大小和位置都被布局接管了,只能任由布局使唤,按在地上摩擦的那种。所以窗体浮动独立出来以后,就可以当做单独的窗体使用了,八个方位任意调整大小,(做到这里,是不是想起来,很多人写的无边框窗体类,自己写代码实现边框的拉伸调整大小?原来Qt也内置类无边框调整大小的位置哈!)同时窗体可以拖动到任意位置,比如可以拖动到中间部位占领一个位置,能够调整到最佳的16:9的大小效果。此时的视频看起来就很爽了,这个效果其实是Qt内置的,我在自定义的标题栏中增加了双击浮动,再次双击最大化显示的功能而已。
feiyangqingyun
2019/08/20
1.4K0
Qt编写数据可视化大屏界面电子看板7-窗体浮动
XAML常用控件
Window控件是一个基础,它是其它控件的容器,我们可以通过修改其中的一些属性来设置窗体的显示效果,下面说一些最常用的属性:
宿春磊Charles
2021/11/05
1.1K0
推荐阅读
相关推荐
C#自定义控件之-winform美化「建议收藏」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验