WPF 开发的实用小工具(附源码)持续更新

前言

【update】

1、新增托盘。

2、新增换肤。

3、透明度切换。

环境

Visual Studio 2019,dotNet Framework 4.0 SDK

本项目采用MVVM模式。

1.获取主监视器上工作区域的尺寸。

2.并设置当前主窗体高度,设置窗体的Left与Top 到最右侧。

       private Rect desktopWorkingArea;              desktopWorkingArea =.Height = desktopWorkingArea.Height / .Left = desktopWorkingArea.Width - .Top = desktopWorkingArea.Height /  - (.Height / );

3.移动窗体只允许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

4.在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);

5.在窗体加载完成去注册表读取安装的应用(还有系统桌面),获取应用路径后提取.ICO转换为.PNG保存。

6.剩下的代码都是wpf中的动画和自动定义控件的代码。

效果图预览

2020/11/09

新更新 滚动增加动画

(0)

相关推荐

  • Windows 桌面应用开发入门

    Windows 桌面应用开发入门 本文提供了开始构建适用于 Windows 桌面环境的应用或更新现有应用以在 Windows OS 中采用最新体验所需的信息. 新建应用 若要构建适用于 Windows ...

  • 在VS2019中打开WPF应用程序窗体界面设计时报错

    打开其他同事一个wpf的项目,在打开窗体,点击设计的时候,提示错误信息如下 System.Resources.MissingSatelliteAssemblyException The satelli ...

  • C#如何利用API去除窗体的标题栏

    [DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern int SetWindowLong(I ...

  • 手把手教你从0开始搭建一个答题小程序 附源码!

    酷酷说钱 每天教你一个赚钱方法. 小程序是2018年的风口,今天教大家从0搭建一个小程序,废话不多说. 按照下面的教程一步一步操作即可搭建好,如果你还是不会,文末会分享大家视频教程 和 小程序源码. ...

  • 带你开发个转盘抽奖小游戏【附源码】

    程序IT圈 1效果图 小时候有没有玩过老虎机抽奖游戏?今天一起来用代码编程实现个简单抽奖的小游戏!首先,先带大家看看实现的效果图是怎么样的: 2分析如何实现 看了上面的效果图,头脑里有没有立刻想到用什 ...

  • 深度说说我开发的强大小工具

    微博/雪球:小鱼量化 2020年初有开发一个自动化小工具的想法后,就想付诸实施,无奈自己不会变成只是有一些不成熟的想法而已,正好有个小伙伴是程序员,很快小工具开发完成,目前已迭代了十几个小版本,已经稳 ...

  • 值得收藏!4个电脑系统实用小工具,职场效率提升必备软件

    有一些软件,可以大幅度提高大家的工作效率,尤其对于部分职场的朋友来说,效率神器般的软件,就是手里的武器. 小迷虫最近整理软件,发现下面这4款软件,是可以让工作效率翻倍的,分享给大家. 一.预览神器:Q ...

  • 简单纯粹,推荐一波Windows实用小工具合集 | 乐软博客

    在Windows平台上涌现出许多经典的小工具,这些小工具或许只是一个简单的快捷键应用,没有太多复杂的操作逻辑,仅仅是为了解决某个单一需求,因此小工具更加的简单直接,使起来得心应手,方便至极. 而有些小 ...

  • 小程序直播源码如何应用,开发模式是什么?

    小程序直播的行业热度持续攀升,品牌.商家.服务商争先入局进行小程序直播源码开发.通过小程序直播源码开发,部分品牌的订单量增长近12倍,部分品牌交易额增长5倍. 在线直播的应用场景有哪些? 在游戏直播. ...

  • 办公必备的工具箱网站,内含111个实用小工具,完全免费

    今天新同事跑来问我,有没有一些聚合的工具网站推荐,比如像美图秀秀网页版那样的,一个网站就可以搞定99%的图片处理问题.小编在脑袋里搜了搜,还真有一个! 这个在线网站也有客户端版本,不过小编更经常用的还 ...

  • C语言丨整蛊必备小程序,好玩炸翻天(附源码)

    前言 感觉学了c语言后仍然一无是处?!!想要整蛊一下朋友仍然不会?!! 别慌,看完这篇文章,你就会了. 下面给大家分享两个基础的整蛊小程序 1.我是猪关机程序 2.无限弹窗程序 一.我是猪关机程序 效 ...

  • 实用小工具

    实用小工具