我想建立一个RibbonApplicationMenu
。其中应嵌套一个RibbonApplicationMenuItem
or 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>
起初没有显示任何错误,程序可以成功构建。
当我继续工作时,整个部分都会被标记并给出错误:
索引“0”超出 PathParameters-List 的有效范围
长度为“0”
出现这个错误的原因是什么?
这很容易理解和修复,但实际上没有必要这样做。
原因
问题是在标准功能区模板中存在许多错误的占位符
<Condition Binding="{Binding (0)}" Value="True"/>
The Fix
长话短说,您需要将上面的内容更改为,例如:
<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
in the Properties Window
-
点击右侧Ambient
并选择Convert to New Resource...
总之,您将运行整体替换(0)
to Zero
通过你所有的xaml。
再次强调,这是一项纯粹的学术活动。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)