WPF RibbonWindow +功能区=屏幕外的标题?

问题描述 投票:29回答:6

我正在尝试将Ribbon控件与RibbonWindow结合使用,但是即使在琐碎的实验中它们也会失败。

  1. 创建新的WPF应用程序
  2. 将代码更改为example from MSDN
  3. 添加了对System.Windows.Controls.Ribbon的引用,并删除了ribbon:前缀(为什么示例已过时?)。
  4. [添加了两个图标(16x16和32x32)。
  5. 执行了应用程序,并看到了此内容(记事本供参考):

“”

我已经看到很多问题:

  1. 边框很小。普通窗口的边框较大,WPF Ribbon应用程序的边框很小。标题高度也较小。
  2. 边框模糊。当普通窗口聚焦时,其边框为黑色。 WPF应用程序的边框为灰色(可以在角落看到黑色;是否在边框上画了东西?)。
  3. 应用程序图标放错了位置。它被粘贴到左上角。
  4. 应用程序标题放错了位置。它粘在顶部。

让我们将工具栏移到底部。现在我们看到了:

“”

按钮在工具栏之外。

最后,让我们最大化窗口:

“”

标题的一半在屏幕外消失了(从技术上来说,窗口is在屏幕外每边8像素,但是其他应用程序对此并不感到困惑)。

我正在使用Windows 7,Aero,单显示器,没什么特别的。恐怕要在Windows 8上测试该应用程序...

是否有机会解决此问题?

c# .net wpf windows ribbon
6个回答
31
投票

真正的问题


10
投票

这是另一种WorkAround,非常简单的方法。只需在工具栏上添加负边距即可。您需要保留原始的窗口类,而不是RibbonWindow!


9
投票

对于阅读此问题的任何人,我自己回答。忘掉可怕的捆绑式色带控件,并使用其他功能。在这里寻找一些替代方法:WindowChrome(像所有好的问题一样,尽管已关闭)。


3
投票

我在RibbonWindow中的标题有相同的问题。我通过在RibbonTitlePanel中设置TextBlock的全局样式来解决它。


2
投票

这不是一个解决方案,也许甚至不能解决,而是一个糟糕的hack,我希望只使用一小段时间,直到问题在框架中得到解决。


1
投票

@@ Julien Lebosquain完全正确。我已经对此进行了独立调查,并发现了https://stackoverflow.com/a/8082816/44726中的错误,此错误已在此 InitializeComponent(); RibbonWindowService.FixMaximizedWindowTitle(this); 中进行了描述。

© www.soinside.com 2019 - 2024. All rights reserved.