WPF 右键菜单 MenuItem 绑定图片时只显示最后一个 Icon

在做一个项目时需要给右键菜单动态绑定项时,其它内容都是正常的,绑定图片就有最后一个图标有图片。

XML 复制代码
        <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" 设置成假就能成功。经过修改终于能显示出来了。

XML 复制代码
 <Image x:Key="img_mitem" x:Shared="false"
        Width="16px" Height="16px"
        Stretch="Uniform" Source="{Binding ImageName,Converter={StaticResource StringToResImageSource}}" />
XML 复制代码
 <Setter Property="Icon" Value="{StaticResource img_mitem}"/>

修改后的效果:

相关推荐
bugcome_com12 分钟前
从 MVVMLight 到 CommunityToolkit.Mvvm:MVVM 框架的现代化演进与全面对比
wpf
笺上知微12 小时前
基于HelixToolkit.SharpDX 渲染3D模型
wpf
晓纪同学2 天前
WPF-03 第一个WPF程序
大数据·hadoop·wpf
光电大美美-见合八方中国芯2 天前
用于无色波分复用光网络的 10.7 Gb/s 反射式电吸收调制器与半导体光放大器单片集成
网络·后端·ai·云计算·wpf·信息与通信·模块测试
晓纪同学2 天前
WPF-02体系结构
wpf
晓纪同学2 天前
WPF-01概述
wpf
海盗12342 天前
OxyPlot 在 WPF 中的使用
.net·wpf
晓纪同学2 天前
WPF-04 XAML概述
wpf
△曉風殘月〆3 天前
如何在WPF中捕获窗口外的事件
wpf
爱吃烤鸡翅的酸菜鱼4 天前
Java 事件发布-订阅机制全解析:从原生实现到主流中间件
java·中间件·wpf·事件·发布订阅