如何在Blend 2015中生成默认的MenuItem模板?

时间:2015-08-18 21:09:12

标签: c# xaml blend

在Blend 2013中,我能够右键单击MenuItem,选择编辑副本,然后为MenuItem生成适当的(大!)模板。它始于:

<ControlTemplate x:Key="{ComponentResourceKey ResourceId=TopLevelHeaderTemplateKey, TypeInTargetAssembly={x:Type MenuItem}}" TargetType="{x:Type MenuItem}">

看起来像

enter image description here

此外,我还可以选择&#34;适用于所有&#34;。

enter image description here

在Blend 2015中,当我尝试做同样的事情时,我得到一个截断的MenuItem控件模板,它不仅不能正常工作,而且还需要一个x:Key

enter image description here

并且无法选择适用于所有人。

enter image description here

更新。可悲的是,这并不奇怪,这也出现在VS2015的XAML编辑器中。 Update2。想知道这是否与2015年创建ControlTemplate而不是MenuItem的样式有关。

Update3。如果您从Blend 2013生成模板并将其放入Blend 2014,则无法再在编辑器中显示XAML Unable to cast object of type 'System.Object' to type 'System.Windows.FrameworkTemplate'. 是你得到的错误。我怀疑当测试人员看到这个而不是修复它时,他们放弃了访问整个MenuItem模板并将其替换为当前(完全无法处理子菜单等)。

如果其他人遇到此问题,则问题来自ComponentResourceKey。设置TypeInTargetAssembly时,会发生错误...该行看起来像 x:Key="{ComponentResourceKey ResourceId=SubmenuHeaderTemplateKey, TypeInTargetAssembly={x:Type MenuItem}}" 如果取出TypeInTargetAssembly,则XAML预览将起作用。但是,不会应用模板。

0 个答案:

没有答案