Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在.net 4.6中禁用RibbonGallery_.net_Wpf_Wpf Controls - Fatal编程技术网

在.net 4.6中禁用RibbonGallery

在.net 4.6中禁用RibbonGallery,.net,wpf,wpf-controls,.net,Wpf,Wpf Controls,我正在WPF中使用RibbonController创建一个应用程序 在我安装.NET4.6之前,它运行良好。然后我的“RibbonGallery”处于禁用状态(视点下拉菜单)。我也试图通过代码启用,但运气不佳;( 见附件 4.5没有问题 .Net 4.6(发行版) 提前感谢…这实际上是RibbonGallery中的一个错误,恰好被4.6.1中的新逻辑所暴露。错误在于RG没有正确初始化其内部状态,因此如果有人调用强制值(IsEnabledProperty),它会将值强制为false(即禁用库)

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

在我安装.NET4.6之前,它运行良好。然后我的“RibbonGallery”处于禁用状态(视点下拉菜单)。我也试图通过代码启用,但运气不佳;(


见附件 4.5没有问题

.Net 4.6(发行版)


提前感谢…

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

.Net 4.6.1具有更好的逻辑,用于将IsEnabled传播到子体。此逻辑最终调用
ribbonGallery.ImpresseValue(IsEnabledProperty)
,这会由于错误而禁用RG

有一个解决方法:更改RG的命令。这会导致RG正确重置其内部状态,以便将来的强制执行正确的操作。例如:

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

RibbonGallery中的禁用项与我遇到的问题相同,一旦IsEnabled设置为false,我将无法再次启用。这在以前是有效的,并且在PC上更新到Net 4.6后被注意到。我几年前运行过一个旧程序,没有任何重新编译,它也会遭受同样的命运。因此,即使Net 4.5成为目标,它也将被禁用xhibit与安装的PC.Net相关联的问题相同。如果PC使用Windows 10,则Net framework不能回滚到Net 4.5,因为它使用的是4.6,对吗


尝试将命令设置为null,但未成功。尝试了安装在PC上的Net 4.6.1和各种目标组合,但未成功。对我来说,我想我会删除Microsoft ribbon的内容,这似乎是一个错误,在开发过程中花费了我的时间。

感谢您确认这是一个错误。但我不明白如何解决这个问题,你能说出来吗please@satish_srg-RibbonGallery强制IsEnabled为false,前提是它有一个CanExecute为false的命令。如果根本没有命令,该强制不应该发生,但错误的初始化会导致它发生。将命令设置为非null值将清除错误状态。将其设置为back到null将丢弃您并不真正想要的命令,但现在RG处于强制正确启用的状态。@moon-您必须将命令设置为非null值以修复错误。然后将其设置为null以丢弃您不真正想要的命令。@Vojtěch Dohnal-是的,每个RibbonGallery都初始化不正确,因此每个nee谢天谢地,RibbonGallery并没有密封,所以我声明了一个子类,其中只有一个调用上述代码的ctor,所以我所需要做的就是替换xaml中的类型,也就是说,替换为我想确认的是,当安装4.6时,即使项目的目标是4.5,错误也会被复制。
ribbonGallery.Command = ApplicationCommands.Print;   // arbitrary command
ribbonGallery.Command = null;                        // don't keep the command