WPFが開発したユーティリティガジェット-クイックサスペンションメニュー

WPFが開発したユーティリティガジェット-クイックサスペンションメニュー

この記事はDotnet9のウェブマスターによって投稿されました。ウェブマスターは、この小さなツールは非常に実用的だと思う、ウェブマスターホーム、会社も使用しようとしています。

最后更新 2020/11/29 22:50
闫金华(闫驚鏵)
预计阅读 4 分钟
分类
WPF
专题
WPFのオープンソースプロジェクト
标签
.NET C# WPF WPFのオープンソースプロジェクト オープンソースソース

この記事はDotnet9のウェブマスターによって投稿されました。ウェブマスターは、この小さなツールは非常に実用的だと思う、ウェブマスターホーム、会社も使用しようとしています。

** テキスト:**

  1. このツールは何の役に立つ?
  2. 本文の本文
  3. ソースコードとアプリケーションダウンロード体験
  4. 駅長のアドバイス

1. このツールは何の役に立つ?

Q:** オペレーティングシステムのインストールアプリケーションはどこで起動しますか?**

答えは:

  1. 左下のオペレーティングシステムのスタートメニュー。
  2. オペレーティングシステムタスクバー;
  3. OSのデスクトップショートカット

正解して10ポイント!

主にこれらの3つの場所でアプリケーションを探していますが、これらのアプリケーションのショートカットを1つの場所に集中することを考えたことがありますか?どのようなアプリケーションが欲しい、マウスは単にスクロールし、ターゲットアプリケーションが少し起動しているのを見て、次のアクションが欲しいかどうかを確認します。

アプリケーションをすばやく検索して起動

快捷查找应用并启动

市場には似たようなソフトウェアのガジェットがたくさんありますが、より強力な機能を行うことができますが、誰が私たちをプログラマーと呼び、自分で開発したガジェットをしないでください。ハハ、以下はウェブマスターリファレンス著者のオープンソースプロジェクトであり、スタイルの1つを抽出したものです(vs 2019 +. net 5、最近のコミュニケーションでは、著者は一時的に水平メニューを削除し、笑って泣いて、著者が追加することを願っています):

レベルメニュー

水平菜单

2.本文の本文

前のページ

最近(ウェブマスター注:ブログパークWPFセクション)を参照してください比較的涼しい、私は暖かいフィールドに来ています。

2020-10-29

【新しい更新】

  1. 新しいトレイを追加。

  2. 追加の皮膚。

  3. 透明度の切り替え。

(環境)

Visual Studio 2019,dotNet Framework 4.0 SDK

本プロジェクトはMVVMモデルを採用し、機能コードを簡単に紹介する:

  1. プライマリモニタ上の作業領域の寸法を取得します。

  2. 現在のメインフォームの高さを設定し、フォームの左と上を右端に設定します。

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軸のみを移動でき、Win 32の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キーを押しながら、現在のフォームを非表示にします。
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現在のフォームを非表示

Tab + Alt隐藏当前窗体

  1. フォームがロードされた後、レジストリに行き、インストールされたアプリケーション(およびシステムデスクトップ)を読み取り、アプリケーションパスを取得した後、.ICOを抽出して保存します。

アプリケーションのインストールを読み込む

读取安装应用

  1. 残りのコードは、WPF内のアニメーションとコントロールを自動定義するコードです。

【効果プレビュー】

垂直方向メニュー

竖直菜单

2020/11/09

【新しい更新】

スクロールの増加のアニメーション

【効果プレビュー】

垂直スクロールのアニメーション垂直スクロールのあにめーしょん

竖直滚动动画

垂直方向メニューひひょうじめにゅーひひょうじ

竖直菜单隐藏

垂直方向メニューの折りたたみ

竖直菜单折叠

垂直方向メニューの切り替え

竖直菜单切换

2020/11/19

【新しい更新】

  1. 新しいDrag移動。

操作手順:メインページの右クリックの後に点線の境界線が表示され、現在の適用位置を変更できますが、保存は行われません。デフォルトのソートは、次回起動時に設定されます。

  1. 既存参照の検索を修正しても、アンロードは見つかりません。

【効果プレビュー】

修改bug

2020/11/20

【新しい更新】

  1. 削除アプリケーションを追加。
  2. 編集時にボタンは表示されません。
  3. 編集中はアニメーションなし。

【効果プレビュー】

可删除

3. ソースコードとアプリケーションダウンロード体験

源码下载地址:SoftWareHelper

SoftWareHelper

下载解压后体验:点击下载

著者の投稿記事:

4. 駅長のアドバイス

作者也是凭着一股热情,一直在更新该项目,大家有需要可以通过上面的链接进行下载、使用,觉得不错,不要忘了给个 star 哦:SoftWareHelper

SoftWareHelper仓库

ウェブマスターは、著者の投稿を受け取る前に、ブログパークで著者が投稿した最初の記事にも注意を払い、経験のためにプロジェクトをダウンロードし、ショートカットメニューのレベルが良いと感じたので、修正のために抽出しました(アイデアの小さな部分が実現され、残りは完了する必要があります):

  • オペレーティングシステムにインストールされるアプリケーションが多すぎて、すべてをロードする必要がないため、メニューは構成ファイルで構成されます。
  • exeドラッグ(またはシステム生成ショートカットドラッグ)追加のサポート:実装済み
  • サポートURL(クリックして指定URLを开く、Webページショートカットに似ている):実装済
  • cmdコマンド配置をサポートする(例えば、システムアプリケーションmstsc、リモートデスクトップ配置ターゲットIP及びポート、ワンタッチで接続を開くなど):実現済み
  • インターフェイス構成メニューの提供未実装
  • アイコンと文字の表示:未実装
  • ...もっと考えています。

著者が上記のアイデアが可能であれば、追加することも検討できます。

站长先不要脸的奉上基于作者开源项目的修改版,很简陋的一个版本:QuickApp

QuickApp

上記のウェブマスター自身の魔法の改訂のアイデアに加えて、以下の小さな提案があります。著者が元のプロジェクトで考慮することを願っています。

  • 元の水平メニューの表示方法を維持し、デスクトップの上、下、左、右のサポートが最善です(動的に位置を切り替えることができます)。
  • 皮膚は現在、ligntとdarkの2種類しかありませんが、後で適切に拡張することができます(背景色を変更する方法は可能です)。

他に提案はありますか?記事の下にメッセージを残すか、上記の著者のブログメッセージをクリックして、ブレインストーミングして、みんなで面白いガジェットを作りましょう!!

ありがとうございました

投稿をありがとうネチズン

ウェブマスターに記事を投稿したり、WPFプロジェクトやコントロールライブラリを推薦したりできます。

Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2025/01/26

WPFはカスタムXMLファイルで国際化を実現

この記事では、必要なNuGetパッケージのインストール、言語リストの動的取得、言語の動的切り替え、コードとxamlインターフェイスでの翻訳文字列の使用、開発者がWPFアプリケーションを簡単に国際化できるようにするソースコードへのリンクなど、WPFプログラムでカスタムXMLファイルを使用した国際化の方法について詳しく説明します。

继续阅读
同分类 / 同标签 2024/01/25

C#WPFにおけるFluentValidationの使用

この記事では、C#WPFプロジェクトでFluentValidationをプロパティ検証に使用する方法を詳しく見て、MVVMパターンでこれを実装する方法を示します。

继续阅读