Используйте шрифт Segoe MDL2 Assets в качестве значка для NotifyIcon (WinForms) - PullRequest
0 голосов
/ 13 января 2020

Можно ли использовать шрифт Segoe MDL2 Assets в качестве значка для приложения SystemTray (NotifyIcon)? Я пытался использовать ответ на этот вопрос , но он не работал:

but it did not work

1 Ответ

0 голосов
/ 13 января 2020

Вам необходимо передать право Точка Юникода необходимого глифа.

Пожалуйста, обратите внимание на следующий фрагмент:

using System.Drawing;
using System.Drawing.Text;

//...

public enum Glyphs
{
    GlobalNavigationButton = 0xE700,
    Wifi = 0xE701,
    Bluetooth = 0xE702,
    Connect = 0xE703,
    InternetSharing = 0xE704,
    VPN = 0xE705,
    //Add more...
}

//...

public static Icon CreateGlyphIcon(Glyphs glyph)
{
    using (var b = new Bitmap(16, 16))
    using (Graphics g = Graphics.FromImage(b))
    using (var f = new Font("Segoe MDL2 Assets", 12, FontStyle.Regular))
    using (var sf = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center })
    {
        g.TextRenderingHint = TextRenderingHint.SingleBitPerPixelGridFit;
        g.DrawString(((char)glyph).ToString(), f, Brushes.White, new Rectangle(0, 0, 16, 16), sf);

        return Icon.FromHandle(b.GetHicon());
    }                   
}

Использование:

var icon = CreateGlyphIcon(Glyphs.Connect);

//or

var icon = CreateGlyphIcon(Glyphs.Bluetooth);

//...etc.
...