【发布时间】:2019-01-02 23:34:09
【问题描述】:
一些背景知识:我正在使用 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 放入。同样,这对我的应用程序的外观没有影响。
为什么?
【问题讨论】:
-
如果你覆盖了默认的 chrome,那么你需要自己定义改变窗口样式的行为。
-
您能详细说明一下吗?我不明白,我对这个有点新。我确实自己改变了窗口样式。问题是,当我这样做时,它没有任何区别
标签: c# .net wpf xaml user-interface