我尝试将具有透明度的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>
答案 0 :(得分:9)
大量信息here。我认为你遗失的那一块是AllowsTransparency="True"
在你的窗户上。
答案 1 :(得分:5)
我的窗口上有一个默认背景,如果没有在窗口上设置Background =“Transparent”(这可能是由于Expression Blend),这对我没有用,以防万一有人遇到类似的问题。