我试图创建一个无边界的窗口, WindowStyle="None"
但是当我对其进行测试时,似乎在顶部出现了一个白色的条,经过一番研究,它看起来像是“调整边框”,这是一张图片(我用黄色标记):
经过Internet上的一些研究,以及许多困难的非xaml解决方案之后,我发现的所有解决方案都是C#和大量代码行背后的代码,我在这里间接找到了解决方案:最大的自定义窗口会失去阴影效果
<WindowChrome.WindowChrome>
<WindowChrome
CaptionHeight="0"
ResizeBorderThickness="5" />
</WindowChrome.WindowChrome>
注意 :您需要使用.NET 4.5框架,或者如果您使用的是旧版本,请使用WPFShell,只需引用该Shell并使用Shell:WindowChrome.WindowChrome
。
我使用了WindowChrome
Window 的属性,如果使用此属性,则白色的“调整边框”消失了,但是您需要定义一些属性才能正常工作。
CaptionHeight:这是字幕区域(标题栏)的高度,该高度允许Aero捕捉,双击行为就像普通标题栏一样。将此设置为0(零)可使按钮起作用。
ResizeBorderThickness:这是窗口边缘的厚度,您可以在其中调整窗口的大小。我设置为5是因为我喜欢该数字,并且如果您将其设置为零,则很难调整窗口大小。
使用此短代码后,结果是:
现在,不使用ResizeMode="NoResize"
和便消失了白色边框AllowsTransparency="True"
,并且在窗口中也显示阴影。
稍后,我将通过简单的简短代码说明如何轻松地使用按钮(按钮没有使用图像),我是新人,我认为我可以发布到codeproject,因为在这里我找不到地方发布教程。
也许还有另一种解决方案(我知道像我这样的菜鸟也有艰难的解决方案),但这对我的个人项目有效。
这是完整的代码
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Concursos"
mc:Ignorable="d"
Title="Concuros" Height="350" Width="525"
WindowStyle="None"
WindowState="Normal"
ResizeMode="CanResize"
>
<WindowChrome.WindowChrome>
<WindowChrome
CaptionHeight="0"
ResizeBorderThickness="5" />
</WindowChrome.WindowChrome>
<Grid>
<Rectangle Fill="#D53736" HorizontalAlignment="Stretch" Height="35" VerticalAlignment="Top" PreviewMouseDown="Rectangle_PreviewMouseDown" />
<Button x:Name="Btnclose" Content="r" HorizontalAlignment="Right" VerticalAlignment="Top" Width="35" Height="35" Style="{StaticResource TempBTNclose}"/>
<Button x:Name="Btnmax" Content="2" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,0,35,0" Width="35" Height="35" Style="{StaticResource TempBTNclose}"/>
<Button x:Name="Btnmin" Content="0" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,0,70,0" Width="35" Height="35" Style="{StaticResource TempBTNclose}"/>
</Grid>
谢谢!