【问题标题】:WFA taskbar minimize while borderless无边框时 WFA 任务栏最小化
【发布时间】:2015-06-23 20:17:41
【问题描述】:

我有无边框表单窗口,带有自定义关闭/最小化按钮 = 我有 FormBorderStyle:None

这是我的问题。使用此设置时,我无法通过任务栏中的图标最小化我的应用程序。

如果我切换到,例如 FormBorderStyle:Fixed3D,原始系统按钮出现在哪里,任务栏图标会恢复活力并可以最小化应用程序。

通过任务栏图标恢复应用没有问题。

那么,FormBorderStyle:None 时,是否可以通过任务栏图标最小化应用?

(在 MS Visual Studio 2012 中使用 .NET 4.5,Windows 窗体应用程序模板)

提前致谢

【问题讨论】:

    标签: c# .net winforms


    【解决方案1】:

    无边框窗口没有 WS_MINIMIZEBOX 窗口样式(因为当您将 FormBorderStyle 设置为 None 时,控制框被移除),因此您必须自己通过覆盖 CreateParams 属性来添加:

    protected override CreateParams CreateParams {
        get {
            const int WS_MINIMIZEBOX = 0x00020000;
            var cp = base.CreateParams;
            cp.Style |= WS_MINIMIZEBOX;
            return cp;
        }
    }
    

    【讨论】:

    • 你应该解释一下。
    • 非常感谢您,它正在工作:) 没有必要,但是是的,如果您有空闲时间,您能稍微解释一下这段代码吗?或者,也许,我在这里搜索不同的解决方案时看到了相同的类型代码......是否有一些关于这些六边形事物的指南,基于它们的基础? (因为即使是 Visual Studio 在悬停此代码的任何部分时也没有给我任何有用的工具提示)坦克很多:) (我想给你代表,但似乎我不能,抱歉 :( ...)跨度>
    • @Zorak 如果您的意思是 WS_MINIMIZEBOX 样式,那么您可以阅读有关窗口样式here 和扩展窗口样式here 的信息。如果您仅指十六进制,则十进制数字为 0-9(base10),十六进制为 0-F(base16)。如果您想了解更多信息,请在 google 上查找 :)
    • nono,第一个,什么是 HEX 我知道 ^_^ 但它在 c# 中的这种用法对我来说是个谜……再次,非常感谢 :)
    • 工作就像一个魅力,即使对于 Windows 窗体应用程序,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多