RibbonGallery已在.net 4.6中禁用

时间:2015-12-16 07:18:06

标签: .net wpf wpf-controls

我正在使用WPF中的RibbonController创建一个应用程序。

在我安装.net 4.6之前它工作正常。然后我的“RibbonGallery”处于禁用状态(Viewpoints Drop Down菜单)。我试图通过Code启用但没有运气;(。

<Custom:RibbonGallery SelectedValue="Entrancelobby" SelectedValuePath="Content" ScrollViewer.VerticalScrollBarVisibility="Visible" MaxHeight="500">
        <Custom:RibbonGalleryCategory Name="viewpointsList" FontFamily="Times New Roman" FontSize="14">  
              <Custom:RibbonGalleryItem Content="Entrancelobby" Foreground="Black" />
              <Custom:RibbonGalleryItem Content="Entrancelobby 01" Foreground="Black"/> 
        <Custom:RibbonGalleryCategory>
</Custom:RibbonGallery>

查看附件 4.5 .Net 4.5 (Working)

没问题

.Net 4.6(问题) enter image description here

提前致谢...

2 个答案:

答案 0 :(得分:17)

这实际上是RibbonGallery中的一个错误,恰好是4.6.1中的新逻辑暴露出来的。错误是RG没有正确初始化其内部状态,因此如果有人调用CoerceValue(IsEnabledProperty),它会将值强制为false(即禁用图库)。例如,调用ribbonGallery.IsEnabled = true;实际上会禁用RG(即使在4.0中)。

.Net 4.6.1具有更好的逻辑,用于将IsEnabled传播给后代。此逻辑最终调用ribbonGallery.CoerceValue(IsEnabledProperty),由于该错误而禁用RG。

有一种解决方法:更改RG的命令。这导致RG正确地重置其内部状态,以便未来的强制做正确的事情。例如:

ribbonGallery.Command = ApplicationCommands.Print;   // arbitrary command
ribbonGallery.Command = null;                        // don't keep the command

答案 1 :(得分:2)

RibbonGallery中的禁用项目与我遇到的问题相同,一旦IsEnabled设置为false,我就无法再次启用。这是以前的工作,并注意到自从在PC上更新到Net 4.6。几年前我运行了一个旧的程序,没有任何重新编译,它也遭受了同样的命运。因此,即使Net 4.5成为目标,它也会出现与安装的PC .Net相关的问题。如果PC使用Windows 10,则Net框架无法回滚到Net 4.5,因为它使用4.6最小权限?

尝试将Command设置为null但这不成功。尝试在PC上安装Net 4.6.1以及针对但不成功的各种组合。对我来说,我想我会撕掉微软的功能区,这些东西在开发时间里一直是我的后顾之忧。