猿问

WPF 位图透明背景变黑

我有一个列表框,其中包含所有具有随机背景颜色的项目。在列表框的每个项目中,我想显示一个位图图片。现在由于某种原因,每个位图的背景(我已经设置为 Color.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>

Binding 绑定到 BitmapSource。


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


感谢您提前提供帮助!


更新:如果我设置了 AllowsTransparency 有效,WindowStyle="None"但它仍然不能解决不透明位图的问题。


qq_花开花谢_0
浏览 467回答 1
1回答

GCT1015

如本答案所述位图(即具有 .BMP 扩展名的文件)本身不支持透明度:您需要另存为不同的格式,如 PNG。您也可以在此处找到相同的信息。所以它不依赖于你的 XAML 或你的代码。只需将您的位图保存为 PNG 文件,然后将这些文件用于您的应用程序。
随时随地看视频慕课网APP
我要回答