我们正在开发一个WPF应用程序,它使用Telerik的控件套件,一切正常,看起来很好.不幸的是,我们最近需要替换所有对话框的基类,通过标准WPF窗口更改RadWindow(原因与此讨论无关).在这样做的过程中,我们最终得到的应用程序在所有开发人员的计算机上都显得非常漂亮(启用了Aero的Windows 7)但在我们的客户端环境(Windows Server 2008 R2下的终端服务)中使用时却很难看.
Telerik的RadWindow是一个标准的用户控件,模仿对话框的行为,因此造型不是问题.有了WPF的窗口,我很难改变它的"边界".我在这里所说的"边框"是带有图标的标题栏和3个标准按钮(最小化,最大化/恢复,关闭)以及窗口周围的调整大小.
如何更改这些项目的外观:
尽可能使用圆角.
Mua*_*Dib 28
这些是"非客户"区域,由Windows控制.这是关于该主题的MSDN文档(相关信息位于顶部).
基本上,您设置Window的WindowStyle ="None",然后构建自己的窗口界面.(关于SO的类似问题)
\xe2\x80\x9c 之类的语句你不能,因为只有 Windows 可以控制非客户区\xe2\x80\x9d 并不完全正确 \xe2\x80\x94 Windows 允许你指定非\xe2 的尺寸\x80\x93 客户区。
\n缺点是这只能通过调用 Windows 的内核方法来实现,并且由于您使用的是 .NET,它不是本机代码,因此您需要 P/Invoke。(请记住,整个 Windows 窗体 UI 和控制台应用程序 I/O 方法均作为包装器提供,在幕后进行系统调用。)因此,如 MSDN 中所述,完全可以使用 P/Invoke 来访问这些方法设置非\xe2\x80\x93客户区所需的。
\n从 .NET 4.5 开始,您可以仅使用该类WindowChrome来调整非客户区。从此处和此处开始,更改窗口边框尺寸的指南。通过将其设置为0,您将能够实现自定义窗口边框来代替系统边框。