如何实现映射应用程序的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;
}
}
我找到了解决方案,实际上位图不支持透明度,它支持但你必须硬编码一点,我找到了一个简单的解决方案,你必须使图像在png格式,然后你可以实现透明度。,所以只修改了一行
image.Save(memoryStream, ImageFormat.Bmp);
将转换器类中的这一行更改为
image.Save(memoryStream, ImageFormat.Png);