WPF菜单图标更改问题

时间:2011-03-26 17:23:21

标签: wpf menu icons

我遇到了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;
    }

对于每个点击事件...... 当我在Flee上点击(样品)时,它会获得正确的图像,muParser也会... 但是另一个菜单中的每个图标都消失了!!!

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

非常感谢!!!

1 个答案:

答案 0 :(得分:2)

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

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

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