我正在创建一个 WPF 应用程序并希望我的窗口是无边界的,并且也可以仅从顶部调整大小。
到目前为止我尝试过的
我最初认为这会起作用:
<Window x:Class="WpfApplication3.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Width="200" Height="150" WindowStyle="None" ResizeMode="CanResize" AllowsTransparency="True" BorderThickness="0,5,0,0" BorderBrush="Black"> <Grid Background="Gray" /> </Window>
我确实得到了一个只有顶部边框的窗口,但我无法调整它的大小。
然后我尝试
WindowChrome.ResizeGripDirection="Top"
使用ResizeMode="CanResizeWithGrip"
.<Window ... WindowStyle="None" ResizeMode="CanResizeWithGrip" AllowsTransparency="True" WindowChrome.ResizeGripDirection="Top" BorderThickness="0,5,0,0" BorderBrush="Black"> ... </Window>
这也不起作用(无法从顶部边框调整大小),并且手柄甚至不会出现在顶部。它位于右下角(不过,我可以使用手柄调整大小)。
这个答案似乎回答者最初可能已经这样做了,但代码不可用。
- 这个答案有一个博客文章的链接,我不太想尝试它,因为我想要一个没有代码的解决方案。
然后是这个答案:
我收到这种方法的错误:
<Window ... WindowStyle="None" ResizeMode="CanResizeWithGrip" AllowsTransparency="False"> <Grid Background="Gray" /> <Setter Property="WindowChrome.WindowChrome"> <Setter.Value> <WindowChrome CornerRadius="0" GlassFrameThickness="1" UseAeroCaptionButtons="False"/> </Setter.Value> </Setter> </Window>
多次设置“内容”属性。
后面有代码:
<Window ... WindowStyle="None" ResizeMode="CanResize" AllowsTransparency="False"> <Grid Background="Gray" /> </Window>
在构造函数中:
WindowChrome chrome = new WindowChrome(); chrome.CornerRadius = new CornerRadius(0); chrome.GlassFrameThickness = new Thickness(0, 1, 0, 0); chrome.UseAeroCaptionButtons = false;
这给了我:
这可以从各个方向调整大小。我只希望它能够从顶部调整大小。(惊喜:我什至没有将新
chrome
对象分配给任何东西。那是如何工作的?我猜这是另一个问题)。
问题
如何制作只能使用顶部边框调整大小的无边框窗口?(最好只使用可以更改颜色的顶部边框来执行此操作)。