如何将资源文件中的图像转换为WPF menuitem.icon

时间:2010-11-26 11:53:49

标签: c# wpf image xaml resources

我有以下代码(XAML C#):

        <Menu IsMainMenu="True" DockPanel.Dock="Top">
            <MenuItem Name="fileMenu" Header="_File" />
            <MenuItem Name="editMenu" Header="_Edit" />
            <MenuItem Name="setupMenu" Header="_Setup">
                <MenuItem Header="_Language">
                    <MenuItem.Icon> 
                         //I want to insert image here
                    </MenuItem.Icon>
                </MenuItem>
            </MenuItem>
            <MenuItem Name="helpMenu" Header="_Help" />
        </Menu>

一个名为images.resx的资源文件,其中包含一个名为lang.png的图像。 如何将图像作为菜单项的图标插入? 还有更好的方法吗?

2 个答案:

答案 0 :(得分:33)

正如Jason所说,最好将您的图像作为资源添加到项目中。

  1. 打开项目的“属性”
  2. 选择垂直标签资源
  3. 从左侧ComboBox中选择图片
  4. 从右侧ComboBox
  5. 中选择“添加资源 - >添加现有文件...”
  6. 找到您要使用的图片,例如“C1.png”(它会自动复制到项目根目录下的Resources文件夹中)
  7. 在新添加的资源图像上选择属性
  8. 在属性中,将“构建操作”设置为“资源”
  9. 打开包含Menu的.xaml文件的设计器,在MenuItem.Icon中添加一个Image,然后将光标放在Image上。
  10. XAML

    <Menu IsMainMenu="True" DockPanel.Dock="Top"> 
        <MenuItem Name="fileMenu" Header="_File" /> 
        <MenuItem Name="editMenu" Header="_Edit" /> 
        <MenuItem Name="setupMenu" Header="_Setup"> 
            <MenuItem Header="_Language"> 
                <MenuItem.Icon>  
                     <Image/>
                </MenuItem.Icon> 
            </MenuItem> 
        </MenuItem> 
        <MenuItem Name="helpMenu" Header="_Help" /> 
    </Menu> 
    

    现在,您可以从属性中选择源属性上的alt text符号,并显示所有可用的图像资源。

    alt text

    在此对话框中,您还可以选择“添加”,在磁盘上找到一个图像文件,Visual Studio将为您完成上述所有步骤。

    alt text

    xaml中Image.Source的结果uri看起来像这样(当然也可以手工添加)

    <Menu IsMainMenu="True" DockPanel.Dock="Top">
        <MenuItem Name="fileMenu" Header="_File" />
        <MenuItem Name="editMenu" Header="_Edit" />
        <MenuItem Name="setupMenu" Header="_Setup">
            <MenuItem Header="_Language">
                <MenuItem.Icon>
                    <Image Source="/MenuIconImage;component/Resources/C1.png" />
                </MenuItem.Icon>
            </MenuItem>
        </MenuItem>
        <MenuItem Name="helpMenu" Header="_Help" />
    </Menu>
    

答案 1 :(得分:1)

你可以将它添加到Menu.Icon。

<Image>
  <Image.Source>
    <BitmapImage UriSource="/ASSEMBLYNAME;component/PATH/IMAGE.png" />
  </Image.Source>
<Image>