如何实现映射应用程序的alpha图标透明度

本文关键字:应用程序 alpha 图标 透明度 映射 何实现 实现 | 更新日期: 2023-09-27 17:53:55

我有一个时间表应用程序映射当前基于时间的应用程序,我使用映射的应用程序图标作为指示符号,我无法实现透明度,因为黑色背景随着应用程序图标在映射完成时发生,这是我的代码,我试图通过许多代码实现它,但无法找到任何解决方案,我认为在图像的转换器类中存在问题

这里是它的xaml代码

 <Image Source="{Binding Path=IconBinding, Converter={StaticResource imageConverter} }" Canvas.Left="100" Canvas.Top="10" Height="35"/>

这是imageconverter类

的代码
 public class ImageConverter : IValueConverter
{
    public object Convert(object value, Type targetType,
        object parameter, CultureInfo culture)
    {
        // empty images are empty...
        if (value == null) { return null; }
        var image = (System.Drawing.Image)value;
        // Winforms Image we want to get the WPF Image from...
        var bitmap = new System.Windows.Media.Imaging.BitmapImage();
        bitmap.BeginInit();
        MemoryStream memoryStream = new MemoryStream();
        // Save to a memory stream...
        image.Save(memoryStream, ImageFormat.Bmp);
        // Rewind the stream...
        memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
        bitmap.StreamSource = memoryStream;
        bitmap.EndInit();
        return bitmap;
    }
    public object ConvertBack(object value, Type targetType,
        object parameter, CultureInfo culture)
    {
        return null;
    }
}

如何实现映射应用程序的alpha图标透明度

我找到了解决方案,实际上位图不支持透明度,它支持但你必须硬编码一点,我找到了一个简单的解决方案,你必须使图像在png格式,然后你可以实现透明度。,所以只修改了一行

image.Save(memoryStream, ImageFormat.Bmp);

将转换器类中的这一行更改为

 image.Save(memoryStream, ImageFormat.Png);