WPF开发的实用小工具 - 快捷悬浮菜单
WPF开发的实用小工具 - 快捷悬浮菜单
❝
本文由网友投稿,Dotnet9站长整理。站长觉得这小工具很实用,站长家里、公司也在尝试使用了。
行文目录:
这工具有什么用?
正文
源码获取及应用下载体验
站长的建议
1. 这工具有什么用?
问:操作系统安装的应用在哪里启动?
答:
左下角的操作系统开始菜单;
操作系统任务栏;
操作系统桌面快捷方式
回答正确,给10分!
大家主要在这三个地方找应用,大家有想过,把这些应用的快捷方式集中到一处吗?想要什么应用,鼠标只要简单一滚动,看到目标应用一点就启动了,看看下面的操作是不是你想要的?
市面上有很多类似的软件小工具,做得功能可能更强大,但谁叫我们是程序员,不搞点自己开发的小玩意儿,那还有面出去说道说道?哈哈哈,下面是站长参考作者的开源项目,提取其中的一种风格做出来的(vs 2019 + .net 5,最近交流才知道,作者暂时去掉了水平菜单,笑哭了,希望作者后面加上):
2.正文
前言
看最近(站长注:博客园WPF版块)比较冷清,我来暖暖场。
2020-10-29
【新更新】
新增托盘。
新增换肤。
透明度切换。
【环境】
Visual Studio 2019,dotNet Framework 4.0 SDK
本项目采用MVVM模式,简单介绍功能代码:
获取主监视器上工作区域的尺寸。
并设置当前主窗体高度,设置窗体的Left与Top 到最右侧。
private Rect desktopWorkingArea;
desktopWorkingArea = System.Windows.SystemParameters.WorkArea;
this.Height = desktopWorkingArea.Height / 2;
this.Left = desktopWorkingArea.Width - this.Width;
this.Top = desktopWorkingArea.Height / 2 - (this.Height / 2);
移动窗体只允许Y轴 移动,调用Win32 的 MoveWindow。
#region 移动窗体
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{anchorPoint = e.GetPosition(this);inDrag = true;CaptureMouse();e.Handled = true;
}protected override void OnMouseMove(MouseEventArgs e)
{try{if (inDrag){System.Windows.Point currentPoint = e.GetPosition(this);var y = this.Top + currentPoint.Y - anchorPoint.Y;Win32Api.RECT rect;Win32Api.GetWindowRect(new WindowInteropHelper(this).Handle, out rect);var w = rect.right - rect.left;var h = rect.bottom - rect.top;int x = Convert.ToInt32(PrimaryScreen.DESKTOP.Width - w);Win32Api.MoveWindow(new WindowInteropHelper(this).Handle, x, (int)y, w, h, 1);}}catch (Exception ex){Log.Error($"MainView.OnMouseMove{ex.Message}");}
}protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
{if (inDrag){ReleaseMouseCapture();inDrag = false;e.Handled = true;}
}
#endregion
在Tab键+Alt键切换时隐藏当前窗体。
WindowInteropHelper wndHelper = new WindowInteropHelper(this);int exStyle = (int)Win32Api.GetWindowLong(wndHelper.Handle, (int)Win32Api.GetWindowLongFields.GWL_EXSTYLE);exStyle |= (int)Win32Api.ExtendedWindowStyles.WS_EX_TOOLWINDOW;
Win32Api.SetWindowLong(wndHelper.Handle, (int)Win32Api.GetWindowLongFields.GWL_EXSTYLE, (IntPtr)exStyle);
在窗体加载完成去注册表读取安装的应用(还有系统桌面),获取应用路径后提取.ICO转换为.PNG保存。
剩下的代码都是wpf中的动画和自动定义控件的代码。
【效果图预览】
2020/11/09
【新更新】
滚动增加动画
【效果图预览】
2020/11/19
【新更新】
新增drag移动。
操作使用说明:在主页面右键后会出现虚线边框然后就可以修改当前应用的位置,但是并没有做保存。下次启动后还是会默认排序。
修改查找已存在引用不会找到卸载。
【效果图预览】
2020/11/20
【新更新】
新增移除应用。
编辑时不显示按钮。
编辑时不走动画。
【效果图预览】
3. 源码获取及应用下载体验
源码下载地址:SoftWareHelper
下载解压后体验:点击下载
作者投稿文章:
Wpf 开发的实用小工具(附源码)持续更新
Wpf 开发的实用小工具(附源码)持续更新(二)拖动应用
Wpf 开发的实用小工具(附源码)持续更新(三)移除应用
4. 站长建议
作者也是凭着一股热情,一直在更新该项目,大家有需要可以通过上面的链接进行下载、使用,觉得不错,不要忘了给个star哦:SoftWareHelper。
站长在接到作者投搞之前,也在博客园关注到了作者发布的第一篇文章,并下载项目进行了体验,觉得其中水平的快捷菜单不错,于是提取出来进行了修改(小部分想法已经实现,其余待抽空完成):
菜单通过配置文件配置,因为操作系统可能装了太多应用,不需要全部加载:已实现
支持exe拖拽(或者系统生成的快捷方式拖拽)添加:已实现
支持网址配置(点击打开指定网址,类似网页收藏快捷方式):已实现
支持cmd命令配置(比如系统应用mstsc,远程桌面配置目标IP及端口,一键打开连接等):已实现
提供界面配置菜单:未实现
显示图标与文字:未实现
....更多想法还在想
作者如果觉得上面的想法可以,不妨也考虑加上。
站长先不要脸的奉上基于作者开源项目的修改版,很简陋的一个版本:QuickApp
除了上面站长自己的魔改版想法外,还有下面的小建议,希望作者在原项目上能考虑:
保留原水平菜单的展示方式,最好桌面上、下、左、右都支持才好(可动态切换位置);
换肤目前只有lignt和dark两种,后面可以适当扩展(用换背景色的方式应该可以);
大家还有什么建议?欢迎在文章下方留言,或者点击上面原作者博文留言,集思广益,大家一起做出一个有意思的小工具出来!!!
感谢
谢谢网友投稿
博客园博主:驚鏵
欢迎大家向站长投稿文章,或推荐WPF项目或者控件库哦。
资源分享
谢谢您的支持,需要任何资源,只需要在公众号后台回复对应数字即可,注:只回复【数字】中的数字:
【01】dotnet
【02】java
【03】android
【04】C++
【05】qt
【06】react
想要的资源本号没有 或 资源链接失效,请【公众号后台留言】或【加我微信】。另:大部分资源可在我的网站搜索哦:https://dotnet9.com
微信中外链无法访问,可点击下方阅读原文查看。
WPF开发的实用小工具 - 快捷悬浮菜单相关推荐
- Web开发中实用小工具
1.文件差异比较工具 Beyond Compare Beyond Compare是一套超级的文件及目录比较工具, 不仅可以快速比较出两个目录的不同,还可以详尽的比较文件之间的内容差异, 而且可以任意 ...
- 基于 JavaFx 搭建的实用小工具集合 xJavaFxTool
项目简介: gitee地址:xJavaFxTool GitHub地址:xJavaFxTool xJavaFxTool交流QQ群:== 387473650 == xJavaFxTool是使用javaFx ...
- 【实用小工具】开发一个网页版LED点阵绘图模拟器
LED点阵显示控制实验,始终是微机系统.单片机控制等硬件实验中重要的一节. 实验内容包括控制显示,图案位置计算,完整图案设计等等步骤.其中完整图案的设计尤其是复杂图案或汉字总是需要手动计算位置,非常的 ...
- JavaFx 实用小工具超 60+ 大集合
怎么JavaFx的资料那么少?是不是已经被时代淘汰了呢? 淘不淘汰不敢断言,但是在知乎上曾经看过有人这么说过,我觉得也是蛮有道理的: 所以说,如果小伙伴们是自己感兴趣想做一些GUI小工具的话,用用Ja ...
- 利用Python3开发一款小工具(界面的设计)
前面在<利用Python3开发一款小工具(引言)>文章中,对我们的需求进行了分析.为了能够让用户运行该工具,因此我们需要一个ui界面,而python中常用的工具就是pyqt,本文将使用py ...
- 程职场人必备微软出品的实用小工具
系统增强工具PowerToys 下载地址:https://github.com/microsoft/PowerToys 什么是 Windows 系统中,最好的辅助工具? PowerToys 一定可以获 ...
- 人生时间计算器_工具拯救效率,高效拯救人生!70个全国工程人实用小工具+算量表格...
工具拯救效率,高效拯救人生.对在线工具的选取与运用,并不是炫技,而是实实在在提升工作效率.而这份工程量自动计算表+使用小工具对于造价人员而言,都是非常好的实用工具,让你比别人更高效的完成工作. 内容简 ...
- Unity实用小工具或脚本—以对象方式访问MySql数据库
一.前言 以对象方式处理MySql数据库顾名思义就是可以将每个数据库表作为一个类,没一条数据作为一个对象来进行操作,大致思路和我上一篇文章类似,这里不再赘述.文章后有资源下载地址,所使 ...
- 手电筒安卓_安卓实用小工具!智能工具箱特别版本安卓软件
软件界面 序号:0037 名称:安卓智能工具箱 分类:Android--实用工具--智能工具 类型:apk 大小:7.58MB 语言:简体中文 版本:V18.1 简介:智能工具箱是安卓移动端的口袋工具 ...
最新文章
- 使用GoAccess分析Nginx日志
- 计算机组装安装与维护作业,计算机组装与维护的作业.pdf
- [文摘]标准的软件开发过程
- 一次Redis client组件性能分析
- [Oracle]使用滚动游标
- python面试题总结(7)--操作类
- 基于jquery的复选树的插件
- 前端大神:如何看待 React Server Components?
- 双粗虚线中间一条实线_一侧虚线一侧实线可以变道吗?双黄线中间是斜杠
- 水务信息化数据整合系统方案分析
- java的视频案例教学 值得下载
- 计算机制图孔中心线,机械制图中各种中心线绘制方法.docx
- Beyond Compare 报错 This license key has been revoked: 8454-8413
- 多多小程序(doodoo)发布1.0,基于node,vue开发的微信小程序系统
- Q1财报大超预期,“大象”百度成功“转身”?
- android电子书大全 下载
- 爬虫实战 | 爬取东方财富网股票数据
- android软件制作app下载地址,如何自己制作安卓apk软件?
- 51单片机基础之DS1302
- 《Dynamic Filter Networks》动态过滤网络
热门文章
- kafka 服务端消费者和生产者的配置
- BZOJ4590: [Shoi2015]自动刷题机
- django源码简析——后台程序入口
- Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
- 将字符串中的大写字母变成小写字母
- FireFox与IE的兼容
- java bean 工厂模式_深入理解Java的三种工厂模式
- 《超越需求:敏捷思维模式下的分析》—第1章 1.1节简介
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)(转)
- Android百度地图开发01之初体验