某些背景:我正在使用C#,WPF和.NET 4.6.1开发应用程序。
我有一个小问题。我定义了一个自定义WindowChrome,而不是Windows提供的默认窗口。我在标题中设置WindowStyle =“ None”,然后在MainApplication XAML页面中定义以下内容:
<WindowChrome.WindowChrome>
<WindowChrome
ResizeBorderThickness="6"
CaptionHeight="20"
GlassFrameThickness="0"
CornerRadius="0"
/>
</WindowChrome.WindowChrome>
现在我遇到了一个特殊问题。当您最小化一个窗口时,我失去了一些作为窗口的一部分而获得的动画功能,而我希望这样做而不是仅仅关闭应用程序。关于StackOverFlow的一些答案建议我尝试许多操作,包括在触发最小化事件时将WindowStyle设置为SingleBorderWindow,然后在重新设置后取消设置以恢复该功能。这行得通!!!
现在我做了一些不同的事情,它也可以工作,并且对我的应用程序的外观没有影响,我也不知道为什么它可以工作。我没有执行上面的解决方案,而是在XAML中将WindowStyle设置为SingleBorderWindow,它可以正常工作!!!我的窗口看起来与将WindowStyle设置为None完全相同,或者,在构造函数中调用InitializeComponents()之后,我只是简单地输入this.WindowStyle = WindowStyle.SingleBorderWindow。同样,这对我的应用程序的外观没有影响。
为什么?
答案 0 :(得分:0)
由于WindowStyle'None'和'SingleBorderWindow'之间的唯一区别是您已覆盖了WindowChrome,因此使用任何WindowStyle都不会有任何区别