我正在使用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>
没问题
提前致谢...
答案 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以及针对但不成功的各种组合。对我来说,我想我会撕掉微软的功能区,这些东西在开发时间里一直是我的后顾之忧。