WPF RibbonWindow 最小化、最大化/还原和关闭按钮不可见

WPF RibbonWindow Minimize, Maximize / Restore, and Close Buttons Not Visible

所以我一整天都在谷歌上搜索,试图找到答案,但没有找到答案。我发现了一些接近的东西,甚至可能找到了解决方案,只是没有意识到,但我似乎无法在我的 windows 10 上显示(可见)最小化、最大化/恢复和关闭按钮机器。除了我自己和另一位刚拿到新笔记本电脑的开发人员之外,没有人遇到过这个问题。我试过改变我的 windows 主题,我确实让他们出现了,我打开了一些高对比度设置,但没有运气。尽管不可见,但它们就在那里并且可以正常工作,因为我可以单击该区域并查看 window 最小、最大、恢复、关闭。

我们正在使用 .Net 4.0 和带有自定义主题 (BureauBlue.xaml) 的功能区Window。我想相信这可能与此有关,但不幸的是我对此一无所知,也不知道从哪里开始。

<r:RibbonWindow x:Class="Ztools.Main" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
                xmlns:props="clr-namespace:Ztools.Properties" 
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:r="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary" 
                IsTabStop="False" Icon="/Ztools;component/ztools32.ico" Height="830" Width="1200"                         WindowStartupLocation="CenterScreen" WindowState="Normal" 
                Loaded="RibbonWindow_Loaded" Closing="RibbonWindow_Closing"
                xmlns:my="clr-namespace:System;assembly=mscorlib" Title="Ztools 2.0" Name="mainRibbon"                   FontSize="14" SizeChanged="mainRibbon_SizeChanged"                                                       LocationChanged="mainRibbon_LocationChanged" 
                StateChanged="mainRibbon_StateChanged" Deactivated="mainRibbon_Deactivated"                               KeyUp="mainRibbon_KeyUp" Background="{x:Null}">
      <r:RibbonWindow.Resources>
          <ResourceDictionary>
              <ResourceDictionary.MergedDictionaries>
                  <ResourceDictionary Source="/Ztools;component/themes/bureaublue.xaml"/>
              </ResourceDictionary.MergedDictionaries>
          </ResourceDictionary>
      </r:RibbonWindow.Resources>
</r:RibbonWindow>

另一件我注意到但还没有通过拿出我的旧笔记本电脑来验证的事情是,我很确定在设计时也出现了漂亮的按钮,但看起来不是这样的。

Bonus question/issue 有时当我们的电脑去 sleep/hibernate 从扩展坞到无站(不确定是哪一个或两个)主题栏也会像这样随机黑掉。如果我能同时解决这个问题,那就太好了。

我确实将其更改为正常 Window 并且能够正确看到所有按钮,但我想我宁愿不走那条路并知道问题是什么并解决它。

非常感谢任何想法或建议。

编辑:所以我认为这与主题无关?我注释掉了与主题有关的所有内容,但它们仍然没有出现...不知道为什么很久以前我没有采取这个简单的步骤。

The ribbonwindow in version 5 has set WindowStyle="none" by default.
也许 WindowStyle 只是设置为 None?
尝试将其设置为 "SingleBorderWindow" 其原始默认值 class.

所以再次post这样任何有相同或相似问题的人至少可以选择解决他们的问题...因为出于某种原因它被删除了尽管包含有价值的信息作为问题的替代解决方案。

现在我将它从丝带Window 更改为 Window 并为我的丝带设置了 0,-22,0,0 的边距,以便按照建议的方式排列并看起来不错许多其他 SO posts。按钮现在出现了,但不是 RibbonWindow 样式,而是原来的样式。

<Window x:Class="Ztools.Main" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
                xmlns:props="clr-namespace:Ztools.Properties" 
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:r="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary" 
                IsTabStop="False" Icon="/Ztools;component/ztools32.ico" Height="830" Width="1200" WindowStartupLocation="CenterScreen" WindowState="Normal" 
                Loaded="RibbonWindow_Loaded" Closing="RibbonWindow_Closing"
                xmlns:my="clr-namespace:System;assembly=mscorlib" Title="Ztools 2.0" Name="mainRibbon" FontSize="14" SizeChanged="mainRibbon_SizeChanged" LocationChanged="mainRibbon_LocationChanged" StateChanged="mainRibbon_StateChanged" Deactivated="mainRibbon_Deactivated" KeyUp="mainRibbon_KeyUp">

   <r:Ribbon Title="Ztools 2.0 (Scale Configuration Editor)" IsTabStop="False" Background="#FFE5E5E5" FontSize="12" FontFamily="Arial" Margin="0,-22,0,0">
   </r:Ribbon>
</Window>

我不仅遇到了同样的问题,而且能够在新项目中复制它并通过此解决方案修复它,尽管对您来说它需要移动到更新的 .net 版本。

问题似乎源于使用 RibbonControlsLibrary。它是功能区控件的过时版本。从 .net 4.5 开始,Ribbon 是框架的原生功能,通过删除引用,您将能够使用包含的 RibbonWindow。

移动到 .net 版本 4.5+ 并删除此引用

xmlns:r="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary" 

并使用

<RibbonWindow> 

而不是

<r:RibbonWindow>