嵌套的RibbonApplicationMenuItem出错

时间:2016-04-01 07:40:11

标签: c# wpf mvvm ribbon

我想构建一个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'”。

出现此错误的原因是什么?

1 个答案:

答案 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进行整体替换。

同样,这是一个纯粹的学术活动。