Как получить изображение из файла ресурсов в WPF menuitem.icon - PullRequest
15 голосов
/ 26 ноября 2010

У меня есть следующий фрагмент кода (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 ]

33 голосов
/ 26 ноября 2010

Как сказал Джейсон, лучше добавить изображения в качестве ресурсов в ваш проект.

  1. Открыть «Свойства» для вашего проекта
  2. Выбрать Вертикальную вкладку Ресурсы
  3. Выберите изображения слева ComboBox
  4. Выберите «Добавить ресурс -> Добавить существующий файл ...» справа ComboBox
  5. Найдите изображение, которое вы хотите использовать, например «C1.png "(он будет автоматически скопирован в папку ресурсов в корне вашего проекта)
  6. Выберите свойства в только что добавленном образе ресурса
  7. В свойствах установите для параметра« Действие сборки »значение« Ресурс »
  8. Откройте конструктор для файла .xaml, содержащего меню, и добавьте изображение в MenuItem.Icon, а затем поместите курсор на изображение.

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 в свойстве Source, и будут отображены все доступные ресурсы изображения.

alt text

В этом диалоговом окне вы также можете выбрать «Добавить», найтифайл изображения на дискеи все вышеперечисленные шаги будут выполнены для вас Visual Studio.

alt text

Полученный URI для Image.Source в 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 Source="/MenuIconImage;component/Resources/C1.png" />
            </MenuItem.Icon>
        </MenuItem>
    </MenuItem>
    <MenuItem Name="helpMenu" Header="_Help" />
</Menu>
1 голос
/ 26 ноября 2010

Вы можете добавить это в Menu.Icon.

<Image>
  <Image.Source>
    <BitmapImage UriSource="/ASSEMBLYNAME;component/PATH/IMAGE.png" />
  </Image.Source>
<Image>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...