2011-03-26 80 views
2

我遇到了WPF菜单和图标的问题。 我想要做的事情是这样的事情:WPF菜单图标更改问题

 Menu1 - NOICON op1 
       NOICON opt2 
       ICON opt3 
     Menu2 - NOICON opt4 
       ICON opt5 

我有一个这样的菜单:

 <Menu> 
     <MenuItem Header="Engine" Click="MenuItem_Click_12" > 
      <MenuItem Header="Use SCCP Standard" Click="MenuItem_Click_11" x:Name="SCCP"/> 
      <MenuItem Header="Use ITS" Click="MenuItem_Click_10" x:Name="ITS"/> 
      <MenuItem Header="Use ODE" Click="MenuItem_Click_13" x:Name="ODE"/> 
     </MenuItem> 
     <MenuItem Header="Constraint Store" > 
       <MenuItem Header="muParser" Click="MenuItem_Click_15" x:Name="muParser"/> 
       <MenuItem Header="Flee" Click="MenuItem_Click_14" x:Name="Flee"/> 
      </MenuItem> 
     </Menu> 

点击后面的代码是:

private void MenuItem_Click_14(object sender, RoutedEventArgs e) 
    { 
     CS_TYPE = "Flee"; 
     Flee.Icon = CHECK; 
     muParser.Icon = NOCHECK; 
    } 

对于每一个点击事件... 当我点击(对于样本)上逃离,它得到正确的形象和muParser也... 但其他菜单中的每个图标suddendly消失了!

我的例子有什么问题?为什么图标从2个不同的菜单中消失?

非常感谢!

回答

2

您需要确保您为每个MenuItem创建一个新的图像。单个图像不能在多个地方使用。

这是一个常见的错误,可能是你遇到的问题。图像是一个可视化的,就像一个按钮。如果您将两个MenuItem的MenuItem.Icon设置为相同的图像,那么该图像将不得不出现在两个位置的可视树中(这是不允许的)。

您可以通过复制Image.Source值从旧的图像创建一个新的图像。