7

我尝试将具有透明度的 PNG 图像应用到整个窗口中,但窗口始终是白色的。

有什么线索可以看到 PNG 的透明度吗?

谢谢!

C#

public SplashScreen()
        {
            InitializeComponent();

            var myBrush = new ImageBrush();
            var image = new Image
            {
                Source = new BitmapImage(
                    new Uri(
                        "pack://application:,,,/MyApp;component/Images/Logo.png"))
            };
            myBrush.ImageSource = image.Source;
            Background = myBrush;

        }

XAML

<Window x:Class="MyApp.SplashScreen"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Topmost="True"
        Title="SplashScreen" Height="400" Width="400" WindowStartupLocation="CenterScreen" WindowStyle="None" 
           BorderThickness="5" ShowInTaskbar="False" ResizeMode="NoResize" >
    <Grid Name="MainGrid">
        <Label FontSize="10" Height="20" Foreground="White" Margin="0,0,0,0" Padding="10,0,0,5" Name="statusLabel"  VerticalAlignment="Bottom"></Label>
        <TextBlock  Visibility="Collapsed"  FontSize="10" Foreground="White"   Margin="18,110,18,30" Name="appInfo" TextAlignment="Center">

        </TextBlock>
        <TextBlock Visibility="Collapsed"  FontSize="20" Foreground="White"   Margin="0,83,0,90" Name="version" TextAlignment="Center">

        </TextBlock>
    </Grid>
</Window>
4

2 回答 2

11

这里有很多信息。我想你缺少的那块AllowsTransparency="True"在你的窗户上。

于 2012-10-15T17:38:05.947 回答
5

我的窗口上有一个默认背景,如果没有在窗口上设置 Background="Transparent"(可能是由于 Expression Blend),这对我不起作用,以防万一有人遇到类似的问题。

于 2013-11-06T00:50:45.850 回答