如何从BitmapImage创建一个NotifyIcon?

3

我在我的资源字典中有一个资源项(一个png文件),我在多个地方使用它。现在我想将它用作应用程序的NotifyIcon,但我不知道该怎么做。请问你有什么想法吗?

// my image:

var bitmap = new BitmapImage();
bitmap.UriSource = new Uri("pack://application:,,,/MyProj.Resources;component/Icons/Logo_48x48.png");

// and I try to do this:

var iconHandle = bitmap.GetHicon(); // but this line doesn't work
var ni = new NotifyIcon {
    Icon = System.Drawing.Icon.FromHandle(iconHandle),
    Visible = true
};

一个简单的解决方案是只存储图标而不是位图。这样你就不必转换任何东西。你可以使用Visual Studio创建一个图标。 - Hans Passant
1个回答

4
var sri = Application.GetResourceStream(
    new Uri("pack://application:,,,/MyProj.Resources;component/Icons/Logo_48x48.png"));
var bitmap = new Bitmap(sri.Stream);
var handle = bitmap.GetHicon();
var ni = new NotifyIcon {
    Icon = System.Drawing.Icon.FromHandle(handle),
    Visible = true
};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接