2012-04-02 235 views
24

我们正在开发一个WPF应用程序,它使用Telerik的控件套件,一切正常,看起来很好。不幸的是,我们最近需要替换所有对话框的基类,用标准的WPF窗口改变RadWindow(理由与本次讨论无关)。在这样做的过程中,我们最终得到了一个在所有开发人员的计算机上都很漂亮的应用程序(启用了Aero的Windows 7),但在客户端环境(Windows Server 2008 R2下的终端服务)中使用时很难看。如何在WPF中设置窗口的边框和标题栏?

Telerik的RadWindow是一个标准的用户控件,它模仿对话框的行为,所以它的样式不是问题。尽管WPF的窗口,我很难改变它的“边界”。我在这里所说的“边框”是指带有图标的标题栏和3个标准按钮(最小化,最大化/恢复,关闭)以及窗口周围的调整大小。

我怎样才能改变这些项目的外观:

  • 标题栏的颜色
  • 3个标准按键
  • 窗口真实的边框颜色

带圆角如果可能的话。

回答

22

这些是“非客户端”区域,由Windows控制。 Here is the MSDN docs on the subject(相关信息在顶部)。

基本上,你设置你的Window的WindowStyle =“None”,然后建立你自己的窗口界面。 (similar question on SO

+0

你的链接是我一直在搜索,但没有找到。很显然,我需要提高我的谷歌技能;-) – 2012-04-04 04:46:56

+1

@MarcelGosselin有人告诉我,我的谷歌福强:)很高兴我能帮助出 – 2012-04-04 05:46:17

+0

错误答案。首先,RadWindow不支持WindowStyle属性。而且,这两个“类似的问题”甚至不是关于Telerik的控制。 – dvallejo 2013-11-22 01:01:28

11

您需要设置

WindowStyle="None"AllowTransparency="True",以及可选ResizeMode="NoResize"
,然后在窗口的样式属性设置为自定义窗口风格,在那里你设计窗口的外观(标题栏,按钮,边框)添加到您想要的任何内容,并在ContentPresenter中显示窗口内容。

This似乎是一篇关于如何实现这一目标的好文章,但互联网上还有很多其他文章。

+0

此[代码示例](https://code.msdn.microsoft.com/WPF-styling-a-Window-in-fcf4e4ce)给出了如何更换默认的样式,同时保持所有的默认功能性的实例(标题栏,窗口边框,窗口按钮,拖动,拖放和调整大小)。 – JayChase 2015-12-14 15:10:06

+0

WindowStyle =“无”,AllowsTransparency =“真”(你忘了“S”的允许) – mcissel 2016-03-26 23:15:20

+0

为什么会改变需要的调整模式?这通过使用键盘(Win +箭头键)打破窗户的任何移动或要求添加它。 – StingyJack 2017-04-18 12:02:50

5

我发现从@DK评论更直接的解决方案在this question,该解决方案由Alex和described here与源, 写尽定制窗口:

  1. 下载示例项目here
  2. 编辑generic.xaml文件以自定义布局。
  3. 享受:)。
1

我建议您从基础解决方案开始,并根据您的需求对其进行定制,然后从头开始更好!

我一直在寻找同样的东西,我落在this开源解决方案,我希望它会有所帮助。

2

检查下面的示例WPF customizing the appearance of a window in XAML

此示例演示如何完全自定义样式/外观的窗口,包括非客户端领域:标题栏,边框,最大值,最小值和关闭按钮,同时仍然提供所有预期的功能。

+0

欢迎您访问解决方案的链接,但请确保您的答案在没有它的情况下很有用:[添加链接的上下文](// meta.stackexchange.com/a/8259),以便您的同行用户了解它是什么以及为什么它在那里,然后引用您链接的页面中最相关的部分,以防目标页面不可用。 [答案只是一个链接,可能会被删除。](// stackoverflow.com/help/deleted-answers) – paper1111 2017-09-13 11:41:20

+0

@ paper1111为什么投了票,你的评论是不够的? – 2017-09-13 11:47:12

+0

我没有downvote它,也许有人从审查队列这样做 – paper1111 2017-09-13 11:48:09

相关问题