如何设置您的 main window 不可见以在 WPF 中将图像显示为 main window

How to set your main window invisble to show a image as main window in WPF

我想尝试制作一个 log-in 屏幕供孩子们 log-in 使用他们的名字。我想使用图像作为登录屏幕,而不是无聊的普通 window。我唯一的问题是,每当我 运行 它时,图像周围仍然有一个框架,当我将主要 window 设置为不可见时,它也会使其中的图像不可见。 在下图中你可以看到图像周围仍然有白色 space,即使它是透明的,它周围仍然有边框,我该如何摆脱它?

在您的 window xaml 中,将 WindowStyle 设置为 None,将 AllowsTransparency 设置为 true,将 ResizeModeNoResize.

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="300" Width="300"
    ResizeMode="NoResize"
    WindowStyle="None"
    AllowsTransparency="True"
    Background="{x:Null}">
    <Grid>
        ...
    </Grid>
</Window>

要移动无边框 window,请使用此代码:

// In xaml
<Window ... MouseDown="Window_MouseDown">

// In code behind
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
    if (e.ChangedButton == MouseButton.Left) this.DragMove();
}

我认为你必须添加到@Dusan 的一个修改,在其他方面正确的答案是 windows 背景必须是透明的并且你的背景图片不能在 window 中托管但是在子控件中(例如在 Grid 中):

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" 
        WindowStyle="None" 
        AllowsTransparency="True" 
        Background="Transparent" >
    <Grid>
        <Grid.Background>
            <ImageBrush ImageSource="C:\Users\Public\Pictures\Sample Pictures\Desert.jpg"/>    
        </Grid.Background>
    </Grid>
</Window>