WPF:消失的图标

Ech*_*lon 7 wpf icons menuitem

我有几个在Window.Resources中声明的图标.它们在第一次出现时显示正常(例如:单击菜单,MenuItem图标有效),但在显示另一个菜单(例如:上下文菜单)后,原始图标消失且不返回.好像第一次使用该图标的最后一个元素就是保留它.

<Window.Resources>
    <Image x:Key="Chart_16"
           Source="pack://application:,,,/Resources/images/chart_16.png" />
    ...
<Window.Resources>

<MenuItem Header="Summary"
          Command="loc:AppCommands.ShowSummary"
          Icon="{StaticResource Chart_16}" />
Run Code Online (Sandbox Code Playgroud)

我已经尝试将其保存为24位PNG,隔行扫描24位PNG和8位PNG,但同样的事情发生了.它不仅仅是一个,在不止一个地方使用的每个图标都是这样的.

Ken*_*art 9

那是因为你的资源是一个Image,这是一个Control.Controls只能有一个父母,因此它可以MenuItem在飞行中有效地重新制作父母.

你的选择是:

  1. 不要使用Image,而是使用ImageSource甚至string包含图像的URI.
  2. 将资源设置为与x:SharedXAML属性不共享.这将Image根据需要创建多个控件.