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