【发布时间】:2016-04-14 18:28:47
【问题描述】:
【问题讨论】:
-
我在可视化树中看不到任何导致这种情况的东西,但我可以在 Windows 10 上重现它。我想知道在以前的 Windows 版本中是否也会发生这种情况。可能是由于窗口布局和边框的处理方式不同而引入的一个错误。
标签: wpf
【问题讨论】:
标签: wpf
您看到的白色是重新调整大小的边框。您可以通过设置 ResizeMode="CanResizeWithGrip" AllowsTransparency="True" 删除它并仍然使窗口可调整大小
如果您根本不想调整大小,请执行此操作 - ResizeMode="NoResize",同样您不会看到边框但无法调整大小。
<Window x:Class="HandsOnSolution.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" Background="Green" WindowStyle="None" ResizeMode="CanResizeWithGrip" AllowsTransparency="True">
<Grid>
</Grid>
</Window>
编辑
@devuxer 说的好,如果您对拖动感兴趣,可以将这段代码添加到窗口鼠标按下事件中
<Window MouseLeftButtonDown="Window_MouseLeftButtonDown"/>
//code behind
private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
DragMove();
}
【讨论】:
这几天我一直在寻找解决方案,简单来说,this 链接就是我的疑问的答案
虽然实现魔法的代码 sn-p 是:
<Setter Property="WindowChrome.WindowChrome">
<Setter.Value>
<WindowChrome CaptionHeight="0"
CornerRadius="2"
GlassFrameThickness="0"
NonClientFrameEdges="None"
ResizeBorderThickness="3"/>
</Setter.Value>
</Setter>
我刚刚将上述属性设置器添加到自定义窗口样式中。
希望有所帮助:)
【讨论】:
非常简化的代码,只作用于一个属性:
<WindowChrome.WindowChrome>
<WindowChrome CaptionHeight="0"/>
</WindowChrome.WindowChrome>
【讨论】:
AllowsTransparency=True 时会丢失。谢谢!
我添加了这段代码:
<WindowChrome.WindowChrome>
<WindowChrome GlassFrameThickness="0,0,0,1" CornerRadius="0" />
</WindowChrome.WindowChrome>
在<Window> paste here <Window/> 里面,它帮助了:)
【讨论】: