WPF:消失的图标

时间:2009-04-02 10:43:17

标签: 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}" />

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

1 个答案:

答案 0 :(得分:9)

这是因为您的资源是Image,这是ControlControl只能拥有一个父级,因此它可以动态地在每个MenuItem中重新设置父级。

您的选择是:

  1. 请勿使用Image,而是使用ImageSource或甚至包含图片URI的string
  2. 使用x:Shared XAML属性将资源设置为非共享。这将根据需要创建多个Image控件。