WPF 右键菜单 MenuItem 绑定图片时只显示最后一个 Icon
在做一个项目时需要给右键菜单动态绑定项时,其它内容都是正常的,绑定图片就有最后一个图标有图片。
<MenuItem.ItemContainerStyle><Style TargetType="MenuItem"><Setter Property="Icon"><Setter.Value><Image Height="16" Width="16" Stretch="Uniform" Source="{Binding ImageName,Converter={StaticResource StringToResImageSource}}"/></Setter.Value></Setter><Setter Property="Header" Value="{Binding Name}"/><Setter Property="Command" Value="{Binding ReplaceCommand}" /><Setter Property="CommandParameter" Value="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}, Path=PlacementTarget.SelectedItems}" /></Style></MenuItem.ItemContainerStyle>
这时想着用改成使用资源来显示,发现也是只显示最后一张图片。后来在网上看到说把图像改成资源然后把 x:Shared="false" 设置成假就能成功。经过修改终于能显示出来了。
<Image x:Key="img_mitem" x:Shared="false"Width="16px" Height="16px"Stretch="Uniform" Source="{Binding ImageName,Converter={StaticResource StringToResImageSource}}" />
<Setter Property="Icon" Value="{StaticResource img_mitem}"/>
修改后的效果: