c# - 如何设置图像上下文菜单项的图标

标签 c# .net wpf xaml contextmenu

当我单击图像时,它会显示菜单,但不会显示图标。我尝试了两种方式:

  1. 一个是我调整了不起作用的图标
  2. 第二个是我使用不起作用的图标属性设置路径。

如何设置上下文菜单项的图标?

Xaml:

<Image Height="20" Width="20" Source="/CitiCall.WinClient;component/Images/user_icon.png" MouseDown="image1_MouseDown"  Margin="0,0,4,6" HorizontalAlignment="Right"  Name="image1" Stretch="Fill" VerticalAlignment="Top">               
    <Image.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Reset password" Icon="/CitiCall.WinClient;component/Images/reset.png"/>
                <!--<MenuItem.Icon>
                    <Image Source="/CitiCall.WinClient;component/Images/reset.png" ></Image>
                </MenuItem.Icon>
            </MenuItem>-->
            <MenuItem Header="Edit Profile"/>
            <MenuItem Header="Settings"/>
            <MenuItem Header="About us"/>
        </ContextMenu>
    </Image.ContextMenu>
</Image>

Xamal.cs:

private void image1_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    if (e.ChangedButton == MouseButton.Left)
    {
        Image image = sender as Image;
        ContextMenu contextMenu = image.ContextMenu;                
        contextMenu.PlacementTarget = image;
        contextMenu.IsOpen = true;
    }
}

最佳答案

实际上,如果您这样写,它应该可以工作:

<MenuItem.Icon>
  <Image Source="Images/reset.png" ></Image>
</MenuItem.Icon>

只需注意右键单击项目中图像的属性,将其设置为内容,如果较新则复制。

看看:WPF image resources

问候

关于c# - 如何设置图像上下文菜单项的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33083218/

相关文章:

c++ - Opencv C++ 在阈值图像中寻找运动

wpf - 将参数传递给自定义控件 ViewModel、MVVM

c# - 动态添加 wpf 控件以包装面板

c# - 为透明的点击覆盖寻找一个好的 WPF 解决方案

c# - 添加 ResourceDictionary 后 MyApp.App 不包含 Initialize 的定义

c# - 将额外参数传递给委托(delegate)

.net - LINQ 中的 Distinct 是什么意思?

c# - Microsoft 企业日志记录应用程序 block - 读取日志文件

c# - ASP.NET 5/MVC 6 控制台托管应用程序

c# - 我应该如何为我的 AES 加密数据库条目导出 key 和初始化向量?