C# 如何将图像从资源文件获取到WPF menuitem.icon中

C# 如何将图像从资源文件获取到WPF menuitem.icon中,c#,wpf,image,xaml,resources,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="

我有以下一段代码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的图像。 如何将图像作为菜单项的图标插入?
有更好的方法吗?

您可以将此添加到Menu.Icon

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

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

打开项目的属性 选择垂直选项卡资源 从左侧组合框中选择图像 选择添加资源->添加现有文件。。。从右组合框 找到要使用的图像,例如C1.png,它将自动复制到项目根目录下的Resources文件夹中 在新添加的资源映像上选择属性 在属性中,将生成操作设置为资源 打开包含菜单的.xaml文件的设计器,在MenuItem.Icon中添加图像,然后将光标放在图像上。 xaml

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

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

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>

这条路是什么?资源文件的名称?或者资源目录?对不起,我没有更好地解释。我认为更好的方法是不要将图像放在RESX文件中,而只是将它们作为资源添加到项目中。这将允许你使用上面的代码。谢谢你们!知道了!谢谢这里的细节@谢谢你!我已经等了10年了,就为了这个时刻!我终于从肉体的牢笼中解脱出来了!如果您参考的是“此问题是否回答您的问题”文本,则当某个问题被标记为可能重复时,系统会自动将其放入其中。那不是我自己写的。
<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>