WPF位图透明背景变为黑色

时间:2018-07-26 14:45:33

标签: c# wpf bitmap

我有一个列表框,其中的项目都具有随机的背景颜色。 我想在列表框的每个项目中显示一个位图图片。 现在由于某种原因,每个位图的背景(我已将其设置为Color.Transparent)显示为黑色。

这里是它的外观图片

Background not transparent

我在列表框中的代码:

 <WrapPanel  Grid.Row="1" Grid.Column="1" Margin="6" >
        <ListBox x:Name="CharListBox" BorderThickness="0" ScrollViewer.VerticalScrollBarVisibility="Hidden" 
                                        ItemsSource="{Binding ListToDisplay, UpdateSourceTrigger=PropertyChanged}"
                                        ItemTemplate="{DynamicResource ItemTemplate1}"
             SelectionChanged="SelectionChangedNewCharSelected">

        </ListBox>
    </WrapPanel>

项目模板(我将图像部分旁边的所有内容都删除了,以便更好地进行概览)

  <DataTemplate x:Key="ItemTemplate1" >
        <Image Source="{Binding OutfitImageSource, UpdateSourceTrigger=PropertyChanged}" Height="40" Width="40" />
    </DataTemplate>

该绑定绑定到BitmapSource。

位图是否可能没有真正的透明度,只是显示为黑色? 我还尝试将AllowsTransparency="True"添加到窗口属性中,这只会导致窗口立即崩溃。

谢谢您的帮助!

更新:如果我设置了WindowStyle="None",AllowsTransparency可以正常工作,但仍然不能解决不透明位图的问题。

1 个答案:

答案 0 :(得分:3)

answer

中的报道
  

位图(即扩展名为.BMP的文件)本身不支持透明性:您需要另存为PNG等格式。

您也可以here找到相同的信息。

因此它不取决于您的XAML或您的代码。只需将位图另存为PNG文件,然后将这些文件用于您的应用程序即可。