2017-09-26 87 views
0

我正在使用Hardcodet NotifyIcon,并且希望在我的上下文菜单项旁边显示图像。但由于某种原因,他们没有出现。如何在任务栏上下文菜单中显示图像/图标

这是代码

<tb:TaskbarIcon x:Name="MyNotifyIcon" Icon="{x:Static p:Resources.frame_01}" ToolTipText="hello world"> 
    <tb:TaskbarIcon.TrayToolTip> 
     <TextBlock Text="{x:Static p:Resources.TraybarTitle}" HorizontalAlignment="Center" VerticalAlignment="Center" /> 
    </tb:TaskbarIcon.TrayToolTip> 

    <tb:TaskbarIcon.ContextMenu> 
     <ContextMenu Background="{StaticResource JITB.SolidColors.Cyan}"> 
      <MenuItem Click="Menu_Open"> 
       <MenuItem.Header> 
        <TextBlock Text="Open" Foreground="White"/> 
       </MenuItem.Header> 
       <MenuItem.Icon> 
        <Image HorizontalAlignment="Left" Source="../../Resources/Icons/Tray-menu-icons-open.ico.png"></Image> 
       </MenuItem.Icon> 
      </MenuItem> 
      <MenuItem Click="Menu_Close"> 
       <MenuItem.Header> 
        <TextBlock Text="Close" Foreground="White"/> 
       </MenuItem.Header> 
       <MenuItem.Icon> 
        <Image Source="../../Resources/Icons/Tray-menu-icons-close.ico.png"></Image> 
       </MenuItem.Icon> 
       </MenuItem> 
     </ContextMenu> 
    </tb:TaskbarIcon.ContextMenu> 
</tb:TaskbarIcon> 

这是结果:

enter image description here

正如你所看到的 - 没有图像!

我在做什么错?

+1

您是否尝试将Source放入绝对路径而不是相对? – Mishka

+0

将图像文件的Build Action设置为'Resource',然后从路径中移除'../ ..'部分。 – Clemens

+0

尝试以下路径:Source =“/ Resources/Icons/Tray-menu-icons-open.ico.png”>。或者:Source =“pack:// application:,,,/Resources/Icons/Tray-menu-icons-open.ico.png”。您的图片是否真的名为“.ico.png”? – mm8

回答

0

尝试使用包URI:

<Image HorizontalAlignment="Left" Source="pack://application:,,,/Resources/Icons/Tray-menu-icons-open.ico.png" /> 

或绝对路径:

<Image HorizontalAlignment="Left" Source="/Resources/Icons/Tray-menu-icons-open.ico.png" /> 

同时确保图像的Build Action属性已设置为“资源”,而路径和文件名称是正确的。

+1

其中'pack:// application:,,,'前缀在XAML中实际上不是必需的,因为它是自动添加的。所以“绝对路径”也隐含地是程序集资源文件包URI。 – Clemens

相关问题