Wpf 在常规窗口(不是RibbonWindow)中使用时功能区绑定失败
我正在使用.net 3.5的RibbonControlLibrary中的Ribbon控件 对于某些演示文稿兼容性问题,我无法使用Wpf 在常规窗口(不是RibbonWindow)中使用时功能区绑定失败,wpf,binding,.net-3.5,ribbon,Wpf,Binding,.net 3.5,Ribbon,我正在使用.net 3.5的RibbonControlLibrary中的Ribbon控件 对于某些演示文稿兼容性问题,我无法使用RibbonWindow。因此,我在窗口中放置了一个Ribbon控件 没有可见的问题,但我在VisualStudio输出窗口中收到2条错误消息 这些信息是: System.Windows.Data错误:4:找不到与绑定的源 参考“相对资源查找器”, AncestorType='Microsoft.Windows.Controls.Ribbon.Ribbon窗口', An
RibbonWindow
。因此,我在窗口中放置了一个Ribbon控件
没有可见的问题,但我在VisualStudio输出窗口中收到2条错误消息
这些信息是:
System.Windows.Data错误:4:找不到与绑定的源
参考“相对资源查找器”,
AncestorType='Microsoft.Windows.Controls.Ribbon.Ribbon窗口',
AncestorLevel='1'。BindingExpression:Path=WindowState;DataItem=null;
目标元素为“Ribbon”(名称=“”);目标属性为“NoTarget”
(键入“对象”)
System.Windows.Data错误:4:找不到与绑定的源
参考“相对资源查找器”,
AncestorType='Microsoft.Windows.Controls.Ribbon.Ribbon窗口',
AncestorLevel='1'。BindingExpression:Path=IsActive;DataItem=null;
目标元素为“Ribbon”(名称=“”);目标属性为“NoTarget”
(键入“对象”)
只需将功能区
添加到窗口
并运行应用程序,即可复制此功能
有没有办法告诉Ribbon不要尝试将任何东西完全绑定到RibbonWindow,而是绑定到Window?既然你说你不能使用RibbonWindow(出于某种原因…),我假设你正在做类似的事情
<Window x:Class="Yournamespace" ...>
<Ribbon>
</Ribbon>
</Window>
你的祖先应该是
AncestorType='System.Windows.Window'
而不是'Microsoft.Windows.Controls.Ribbon.RibbonWindow'
您可能有:
<Window x:Class="yournamespace"
xmlns:r="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
...>
<r:Ribbon>
</r:Ribbon>
</Window>
To fix this just replace <Window> and </Window> with <r:RibbonWindow> and </r:RibbonWindow>
要解决此问题,请使用和替换
这为我解决了问题我理解原因,但不知道如何解决问题。A好吧,Ribbon内的某些控件的模板可以在外部样式中重写,以使其看起来像一个存储类型的窗口,而不是RibbonWindow。可能我误解了您的答案,但您的建议似乎是不要介意这些绑定问题。如果我可以使用RibbonWindow,就没有问题了。我的问题是“我不能使用RibbonWindow来解决某些演示文稿兼容性问题”。如果您能给出一个使用RibbonWindow时的基本代码示例及其产生的错误,我们可能会看到哪里出了问题。对我来说,当我使用ribbonwindow时,错误消失了。我觉得很奇怪,你不能使用它。我不使用RibbonWindow,我在常规WPF窗口上放置了一个Ribbon,这就是重点。RibbonWindow的外观和行为有点不同,这些差异在我的应用程序中是不可接受的。我正在对.NET 472使用System.Windows.Controls.Ribbon,并且是相同的。但我不确定这些错误是否会导致任何真正的问题。可能是重复的