Frage

Ich habe mich gefragt, wann immer Sie das anrufen ShowBalloonTip Methode der NotifyIcon Klasse, Sie erhalten einen Ballon -Tooltip wie folgt:

Standard Baloon Tip
Abb. 1: Standard -Ballon -Tooltip



Einige Anwendungen und Microsoft -Produkte können mehr als diese "einfachen" Ballon -Tipps anzeigen.
Hier sind einige Muster:

Windows Update Tip Fig. 2: Windows Update Ballon Tooltip


Driver Installation Tip
(Quelle: microsoft.com)

Abb. 3: Hardware -Treiber -Installation Ballon Tooltip


USB Safely Remove
Fig. 4: Hardwareentfernertoltip (Programm: USB sicher entfernen)



Ein guter Blick auf die Abbildungen 2, 3 und 4 zeigt, dass sie keine Standard -Ballon -Tooltips sind!

Abb. 2 hat eine andere Form, möglicherweise vom Einstellen der Region Eigentum. Es hat auch ein individuelles Symbol, das viel größer ist als der Standard Tooltipicon.

Abb. 3 Verwendet die Standardform (glaube ich), hat aber ein benutzerdefiniertes Symbol, das unnötig zu erwähnen ist Tooltipicon Größe.

Abb4 verwendet einen Standard Tooltipicon Aber es hat eine andere Form.


Meine Frage ist, wie man einen der "reichhaltigen" Ballon -Tooltips erstellt, die im Benachrichtigungsbereich in .NET zu sehen sind? Ich kann WinAPi umgehen, und es kann die erforderliche Ausgabe erzeugen.

War es hilfreich?

Lösung

Sie müssen die Win32 -Funktion verwenden Shell_notifyicon. Sie können die festlegen Dwinfoflags Mitglied von Melifyicondata Struktur zu NIIF_USER, um ein benutzerdefiniertes Symbol für den Ballon -Tooltip zu verwenden.

Unter Windows XP Service Pack 2 und später können Sie die verwenden Hicon Mitglied, um ein benutzerdefiniertes Symbol anzugeben.

Unter Windows Vista und später enthält die Notifyicondata -Struktur das addiionale Mitglied Hballonicon. Sie können dieses Mitglied verwenden, um ein benutzerdefiniertes Symbol anzugeben, wenn Sie das festgelegt haben CBSIZE Mitglied zur korrekten Größe der erweiterten Notifyicondata -Struktur.

Andere Tipps

Überprüfen Sie das:

http://www.codeprroject.com/kb/wpf/wpf_taskbarnotifier.aspx

oder

www.codeprroject.com/kb/wpf/wpf_notifyicon.aspx

Eine andere Option besteht darin, einen Ballon für einen eigenen Benachrichtigungsformular zu erstellen. Dann haben Sie Benachrichtigungen mit Blumenhintergrund und rosa Grenzen :) Übrigens: Das kann auch einige Funktionen haben.

Wie in diesem Beispiel:

http://i.stack.imgur.com/qta0y.jpg<< Bildbeispiel

Erstellen Sie ein Formular, wie Sie möchten, Region, Steuerelemente usw. :) und codieren Sie etwas wie:

void notifyIcon_MouseMove(object sender, MouseEventArgs e)
    {
        if (!this.Visible)
        {
            ShowPopup();
        }
    }

    Timer t = new Timer();
    private void ShowPopup()
    {
        Rectangle rect = Screen.GetWorkingArea(new Point(Screen.PrimaryScreen.Bounds.Right, Screen.PrimaryScreen.Bounds.Bottom));
        this.Top = rect.Bottom - this.Height;
        this.Left = rect.Right - this.Width;
        this.Visible = true;

        t.Interval = 4000;
        t.Tick += new EventHandler(t_Tick);
        t.Start();
    }

    void t_Tick(object sender, EventArgs e)
    {
        t.Stop();
        Visible = false;
    }

    private void Form1_Click(object sender, EventArgs e)
    {
        this.Visible = false;
    }

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        notifyIcon.Visible = false;
        notifyIcon.Dispose();
    }

Übrigens sehen sie alle ein bisschen gleich aus, mit unterschiedlicher Symbolgröße, und der erste könnte nach rechts passen, während alle anderen nach links ausgerichtet sind ... Kleinere Schatten usw. :) :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top