更改最小化,关闭和最大化窗口的图标

Moh*_*nde 2 c# wpf icons window winforms

简单的问题.如何更改关闭,最小化,最大化按钮的图标.我可以在Winforms和WPF中执行此操作吗?

Joh*_*ler 7

处理WM_NCPAINT消息时,将绘制窗口上的这些图标,标题和边框.因此,您接管绘制此方法的方法是处理此消息.

但是您无法访问有关图标的状态信息(即,您应该在其按下状态下绘制哪个按钮,因为用户当前正在点击它).你甚至不知道鼠标处理代码到底认为这些图标的确切位置.

因此,要接管非客户端绘制,您还需要接管非客户端鼠标处理,并且整个问题只是滚雪球,直到您编写了数千行代码并且您的窗口在用户时仍然表现不正常试图拖动它等

这是在非托管代码中,在托管代码(C#/ .Net)中,这甚至更难,因为您还必须进行互操作以获取您需要使用的某些API.

所以答案是:是的,它可能,但在WinForms和WPF中比在C++中更难,而那些尝试过它的人现在都很秃顶.


Jam*_*sey 5

真正的答案是你不应该这样做.用户希望所有应用程序都能正常工作.让他们尝试弄清楚你使用什么漂亮的新图标意味着最小化可能会让他们不高兴.

  • 是的,只有微软和Adobe才能做到这一点. (5认同)