MenuItem.Icon仅出现在最后一项上
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MenuItem.Icon仅出现在最后一项上相关的知识,希望对你有一定的参考价值。
我有一个菜单,项目上有以下样式:
<Style TargetType="MenuItem">
<Setter Property="Template" Value="{StaticResource MenuItem}"/>
<Setter Property="Icon">
<Setter.Value>
<TextBlock FontWeight="Bold">Ic</TextBlock>
</Setter.Value>
</Setter>
<Setter Property="Header" Value="{Binding Name}"/>
<Setter Property="ItemsSource" Value="{Binding SubItems}"/>
</Style>
(Name
和SubItems
是类MenuItem
的属性。菜单的ItemsSource
属性绑定到List<MenuItem>
类型的对象)
问题是“图标”部分仅出现在菜单的最后一项:
我最终想要将每个Item绑定到它自己的Icon,但这似乎也不起作用。是什么原因造成了这种不端行为以及如何解决这个问题?
更新我见过这个:MenuItem style with icon creates only one icon,但它不适合我,因为a。 x:Shared=false
做了XamlParseException
和b。如果我把它移出Style.Resources
它没有例外,但根本没有用。请注意,我确实需要在INSIDE中使用Style,因为最终我希望它绑定到我将MenuItem绑定到的类的属性。
答案
不要共享TextBlock
<TextBlock x:Key="tb" x:Shared="false" FontWeight="Bold">Ic</TextBlock>
<Style TargetType="{x:Type MenuItem}">
...
<Setter Property="Icon" Value="{StaticResource tb}"/>
</Style>
以上是关于MenuItem.Icon仅出现在最后一项上的主要内容,如果未能解决你的问题,请参考以下文章
Gatsby 源插件仅显示 GraphQL 中数组中的最后一项