1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        WPF開發(fā)的實(shí)用小工具 - 快捷懸浮菜單

        共 3716字,需瀏覽 8分鐘

         ·

        2020-11-25 16:45

        WPF開發(fā)的實(shí)用小工具 - 快捷懸浮菜單

        ?

        本文由網(wǎng)友投稿,Dotnet9站長整理。站長覺得這小工具很實(shí)用,站長家里、公司也在嘗試使用了。

        行文目錄:

        1. 這工具有什么用?
        2. 正文
        3. 源碼獲取及應(yīng)用下載體驗(yàn)
        4. 站長的建議

        1. 這工具有什么用?

        問:操作系統(tǒng)安裝的應(yīng)用在哪里啟動?

        答:

        1. 左下角的操作系統(tǒng)開始菜單;
        2. 操作系統(tǒng)任務(wù)欄;
        3. 操作系統(tǒng)桌面快捷方式

        回答正確,給10分!

        大家主要在這三個地方找應(yīng)用,大家有想過,把這些應(yīng)用的快捷方式集中到一處嗎?想要什么應(yīng)用,鼠標(biāo)只要簡單一滾動,看到目標(biāo)應(yīng)用一點(diǎn)就啟動了,看看下面的操作是不是你想要的?

        快捷查找應(yīng)用并啟動

        市面上有很多類似的軟件小工具,做得功能可能更強(qiáng)大,但誰叫我們是程序員,不搞點(diǎn)自己開發(fā)的小玩意兒,那還有面出去說道說道?哈哈哈,下面是站長參考作者的開源項(xiàng)目,提取其中的一種風(fēng)格做出來的(vs 2019 + .net 5,最近交流才知道,作者暫時去掉了水平菜單,笑哭了,希望作者后面加上):

        水平菜單

        2.正文

        前言

        看最近(站長注:博客園WPF版塊)比較冷清,我來暖暖場。

        2020-10-29

        【新更新】

        1. 新增托盤。

        2. 新增換膚。

        3. 透明度切換。

        【環(huán)境】

        Visual Studio 2019,dotNet Framework 4.0 SDK

        本項(xiàng)目采用MVVM模式,簡單介紹功能代碼:

        1. 獲取主監(jiān)視器上工作區(qū)域的尺寸。

        2. 并設(shè)置當(dāng)前主窗體高度,設(shè)置窗體的Left與Top 到最右側(cè)。

        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);
        1. 移動窗體只允許Y軸 移動,調(diào)用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
        1. 在Tab鍵+Alt鍵切換時隱藏當(dāng)前窗體。
        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);
        Tab + Alt隱藏當(dāng)前窗體
        1. 在窗體加載完成去注冊表讀取安裝的應(yīng)用(還有系統(tǒng)桌面),獲取應(yīng)用路徑后提取.ICO轉(zhuǎn)換為.PNG保存。
        讀取安裝應(yīng)用
        1. 剩下的代碼都是wpf中的動畫和自動定義控件的代碼。

        【效果圖預(yù)覽】

        豎直菜單

        2020/11/09

        【新更新】

        滾動增加動畫

        【效果圖預(yù)覽】

        豎直滾動動畫
        豎直菜單隱藏
        豎直菜單折疊
        豎直菜單切換

        2020/11/19

        【新更新】

        1. 新增drag移動。

        操作使用說明:在主頁面右鍵后會出現(xiàn)虛線邊框然后就可以修改當(dāng)前應(yīng)用的位置,但是并沒有做保存。下次啟動后還是會默認(rèn)排序。

        1. 修改查找已存在引用不會找到卸載。

        【效果圖預(yù)覽】

        修改bug

        2020/11/20

        【新更新】

        1. 新增移除應(yīng)用。
        2. 編輯時不顯示按鈕。
        3. 編輯時不走動畫。

        【效果圖預(yù)覽】

        可刪除

        3. 源碼獲取及應(yīng)用下載體驗(yàn)

        源碼下載地址:SoftWareHelper

        SoftWareHelper

        下載解壓后體驗(yàn):點(diǎn)擊下載

        作者投稿文章:

        • Wpf 開發(fā)的實(shí)用小工具(附源碼)持續(xù)更新
        • Wpf 開發(fā)的實(shí)用小工具(附源碼)持續(xù)更新(二)拖動應(yīng)用
        • Wpf 開發(fā)的實(shí)用小工具(附源碼)持續(xù)更新(三)移除應(yīng)用

        4. 站長建議

        作者也是憑著一股熱情,一直在更新該項(xiàng)目,大家有需要可以通過上面的鏈接進(jìn)行下載、使用,覺得不錯,不要忘了給個star哦:SoftWareHelper。

        SoftWareHelper倉庫

        站長在接到作者投搞之前,也在博客園關(guān)注到了作者發(fā)布的第一篇文章,并下載項(xiàng)目進(jìn)行了體驗(yàn),覺得其中水平的快捷菜單不錯,于是提取出來進(jìn)行了修改(小部分想法已經(jīng)實(shí)現(xiàn),其余待抽空完成):

        • 菜單通過配置文件配置,因?yàn)椴僮飨到y(tǒng)可能裝了太多應(yīng)用,不需要全部加載:已實(shí)現(xiàn)
        • 支持exe拖拽(或者系統(tǒng)生成的快捷方式拖拽)添加:已實(shí)現(xiàn)
        • 支持網(wǎng)址配置(點(diǎn)擊打開指定網(wǎng)址,類似網(wǎng)頁收藏快捷方式):已實(shí)現(xiàn)
        • 支持cmd命令配置(比如系統(tǒng)應(yīng)用mstsc,遠(yuǎn)程桌面配置目標(biāo)IP及端口,一鍵打開連接等):已實(shí)現(xiàn)
        • 提供界面配置菜單:未實(shí)現(xiàn)
        • 顯示圖標(biāo)與文字:未實(shí)現(xiàn)
        • ....更多想法還在想

        作者如果覺得上面的想法可以,不妨也考慮加上。

        站長先不要臉的奉上基于作者開源項(xiàng)目的修改版,很簡陋的一個版本:QuickApp

        QuickApp

        除了上面站長自己的魔改版想法外,還有下面的小建議,希望作者在原項(xiàng)目上能考慮:

        • 保留原水平菜單的展示方式,最好桌面上、下、左、右都支持才好(可動態(tài)切換位置);
        • 換膚目前只有l(wèi)ignt和dark兩種,后面可以適當(dāng)擴(kuò)展(用換背景色的方式應(yīng)該可以);

        大家還有什么建議?歡迎在文章下方留言,或者點(diǎn)擊上面原作者博文留言,集思廣益,大家一起做出一個有意思的小工具出來?。?!

        感謝

        謝謝網(wǎng)友投稿

        • 博客園博主:驚鏵

        歡迎大家向站長投稿文章,或推薦WPF項(xiàng)目或者控件庫哦。

        資源分享

        謝謝您的支持,需要任何資源,只需要在公眾號后臺回復(fù)對應(yīng)數(shù)字即可,注:只回復(fù)【數(shù)字】中的數(shù)字:

        • 【01】dotnet
        • 【02】java
        • 【03】android
        • 【04】C++
        • 【05】qt
        • 【06】react

        想要的資源本號沒有資源鏈接失效,請【公眾號后臺留言】或【加我微信】。另:大部分資源可在我的網(wǎng)站搜索哦:https://dotnet9.com

        微信中外鏈無法訪問,可點(diǎn)擊下方閱讀原文查看。

        瀏覽 45
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            久久aaa| 中外毛片 | 国产精品三级电影在线观看 | 成人涩涩视频▓无码免费 | 韩国免费黄色片 | 丰满激情的肉岳 | 久久久噜噜噜久久 | 豆花无码网站 | 美女视频黄在线 | 舔小核|