使用luna或classic时,如何删除WPF窗口的边框?

tom*_*ene 14 .net c# windows wpf

当我显示一个WPF窗口时WindowStyle="None",它在使用areo时看起来很棒.

但是,当我使用luna或classic时,它会显示一个约5像素宽的丑陋灰色边框.

当然,如果我设置ResizeMode="NoResize",这个边框消失了,但我希望窗口可以调整大小(ResizeMode="CanResize").

其他非WPF应用程序(实时邮件,即firefox等)不显示此灰色边框,但仍可调整大小.

有没有办法在仍可调整大小的同时删除此边框?

Jon*_*way 15

我正在使用WPF Customizable Window的Essential Window.这是我的窗口声明(缩写):

    <CustomWindow:EssentialWindow 
      xmlns:aero="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
      xmlns:CustomWindow="clr-namespace:CustomWindow;assembly=CustomWindow"
      AllowsTransparency="True" Background="Transparent" 
      ResizeMode="CanResizeWithGrip"
      WindowStyle="None"
      ShowInTaskbar="True" >
Run Code Online (Sandbox Code Playgroud)


Joh*_*zek 10

尝试在Window上将AllowTransparency设置为True.

  • @JohnMyczek 当 AllowsTransparency 设置为 True 时,您可以发布调整窗口大小的代码吗? (2认同)

Dar*_*ekt 6

我找到了一个更好的答案.无需乱搞ResizeMode.无需互操作电话.无需设置可能有副作用的AllowTransparency.

<WindowChrome.WindowChrome>
 <WindowChrome CaptionHeight="0" ResizeBorderThickness="5" />
</WindowChrome.WindowChrome>
Run Code Online (Sandbox Code Playgroud)

我从这个帖子中得到了这个答案:如何创建一个没有边框的WPF窗口,只能通过夹点调整大小?

我把它转发给那些在这里搜索谷歌的人.

  • 最佳答案!有winformshost支持 (3认同)