从Control Visual创建具有透明背景的图标

时间:2018-06-22 16:34:49

标签: c# wpf icons transparency

我正在使用HardCodet.NotifyIcon.Wpf在系统托盘中显示状态图标。我需要更改图标,所以我不能使用资源文件作为图标。我有一个用户控件,希望在我的应用程序中绘制该控件,希望将该控件的视觉效果用作任务栏图标的来源。除了托盘上的图标的背景为黑色而不是透明的,我可以进行所有操作。如果我画一个矩形,颜色就会显示出来。我尝试将矩形颜色设置为透明,但结果是黑色。我得到的最接近的解决方法是尝试绘制背景以匹配任务栏颜色。我找不到获取任务栏颜色的方法,并且窗口标题颜色要浅一些(在下面的示例代码中使用)。这是我到目前为止使用各种搜索摘录获得的代码。

anotherArray

有没有办法做到这一点?

This similar question didn't have any answers that worked in my situation.

1 个答案:

答案 0 :(得分:1)

BmpBitmapEncoder不支持透明度。请改用PngBitmapEncoder

var encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));
...