我知道这可以在系统级别进行控制,但是我想要覆盖系统设置并且只为我的应用程序提供某种外观。我假设必须有一个Windows API函数来控制它,因为我已经看到另一个Windows应用程序来做它。
(没有必要说明我不应该这样做的原因)
答案 0 :(得分:2)
如果你想为你的应用程序提供一个自定义外观,我只需要使我的表单无边框并自己处理所有内容,或者通过在Paint事件中绘制表单本身,或者在Resize中移动控件(面板等)事件。你必须处理诸如拖动,调整大小,关闭/最小化等事情,但这些都不是特别困难。
这是my answer一个类似的问题,它显示了自己做的基础知识(适用于Windows移动设备,但它也适用于常规窗口)。
答案 1 :(得分:2)
应用程序窗口的这些外部元素统称为窗口“chrome”,并且确实由操作系统呈现。在Windows API级别使用各种标志来控制每个窗口实例的某些方面(例如,控制盒,边框,最小/最大按钮等的现有),但可调整大小窗口的边框宽度由系统设置决定确保一致性,并且不能在逐个窗口的基础上进行配置。
在许多情况下,您可以通过与Windows API交互来控制窗口未暴露的窗口的某些方面,并且阅读Windows API文档以确定在较低版本下可能的内容是有益的。水平。我建议阅读CreateWindowEx的文档作为起点。
http://msdn.microsoft.com/en-us/library/ms632680(VS.85).aspx
.NET允许您更改FormBorderStyle属性以选择无边框,单像素宽度边框和可调整大小(粗边框)。如果你想做一些自定义的事情,你必须将.NET边框样式设置为none,然后承担自己渲染窗口chrome的责任。这需要渲染自己的标题栏,最小/最大按钮和窗口边框。这不是一项轻松的任务,但许多应用程序都是这样做的。如果您真正想要的是控制边框宽度,那么还有很长的路要走。
本文讨论了如何在WPF中处理此任务,也可能有用。