【发布时间】:2017-01-04 01:51:54
【问题描述】:
我正在创建一个 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>这也不起作用(无法从顶部边框调整大小),并且手柄甚至不会出现在顶部。它停留在右下角(不过,我可以用手柄调整大小)。
This answer 似乎回答者最初可能已经这样做了,但代码不可用。
- This answer 有一个指向 blog post 的链接,我不太想尝试它,因为我想要一个没有代码的解决方案。
-
然后是this answer:
-
我在使用这种方法时遇到了错误:
<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对象分配给任何东西。它是如何工作的?我猜这是另一个问题。
-
问题
如何制作一个无边框窗口,该窗口只能用顶部边框? (最好只使用可以更改颜色的上边框来做到这一点)。
【问题讨论】:
标签: c# wpf resize borderless