我想构建一个RibbonApplicationMenuItem
。其中应该是嵌套的RibbonApplicationSplitMenuItem
或<ribbon:RibbonApplicationSplitMenuItem x:Name="item1" Header="open project" ImageSource="../img/img1.png">
<ribbon:RibbonApplicationMenuItem x:Name="item11" Header="sub1" ImageSource="../img/img2.png" />
<ribbon:RibbonApplicationMenuItem x:Name="item12" Header="sub2" ImageSource="../img/img3.png" />
<ribbon:RibbonApplicationMenuItem x:Name="item13" Header="sub3" ImageSource="../img/img3.png" />
</ribbon:RibbonApplicationSplitMenuItem>
,例如喜欢这个:
{{1}}
首先没有显示错误,程序可以成功构建。
当我继续工作时,标记整个部分并给出错误:“索引'0'超出PathParameters-List的有效范围,长度为'0'”。
出现此错误的原因是什么?
答案 0 :(得分:5)
这很容易理解和修复,但没有必要这样做。
问题是在标准功能区模板中有许多错误的占位符
<Condition Binding="{Binding (0)}" Value="True"/>
长话短说,您需要将上述内容更改为,例如:
<Condition Binding="{Binding Zero }" Value="True"/>
这不是微不足道的,但你可以稍微注意一下......
您必须添加对PresentationFramework.Classic
然后,让我从头开始......目标是定义以下
<Window.Resources>
<Style TargetType="{x:Type RibbonButton}" >
<Setter Property="Template" Value="{DynamicResource RibbonButtonControlTemplate1}"/>
</Style>
<Style TargetType="{x:Type RibbonApplicationSplitMenuItem}" >
<Setter Property="Template" Value="{DynamicResource RibbonApplicationSplitMenuItemControlTemplate1}"/>
</Style>
<Style TargetType="{x:Type RibbonApplicationMenuItem}" >
<Setter Property="Template" Value="{DynamicResource RibbonApplicationMenuItemControlTemplate1}"/>
</Style>
</Window.Resources>
还缺少什么?包含上述ControlTemplates
的三个非常大的代码片段......但是有一个技巧可以包含它们:
RibbonApplicationMenuItem
并找到Template
Properties Window
点击右侧Ambient
,然后选择Convert to New Resource...
总之,您将通过所有xaml从(0)
到Zero
进行整体替换。
同样,这是一个纯粹的学术活动。