WPF —— ContextMenu右键菜单 Canvas控件详解

 ContextMenu右键菜单的实例



​​​​​​​WPF中的右键菜单主要是通过ContextMenu来实现,

在控件中使用ContextMenu

直接在控件的ContextMenu属性中关联即可。

<Label Content="右键弹出内容菜单" FontSize="20" Width="200" Height="40"><Label.ContextMenu><ContextMenu Name="c1" ItemsSource="{Binding}"><ContextMenu.ItemTemplate><HierarchicalDataTemplate ItemsSource="{Binding Path=SubMenus}"><TextBlock Text="{Binding}"></TextBlock></HierarchicalDataTemplate></ContextMenu.ItemTemplate></ContextMenu></Label.ContextMenu>
</Label>

创建一个模型类

    private void Window_Loaded_1(object sender, RoutedEventArgs e){this.c1.DataContext = CreateMenu();}// 以后有可能在menu菜单和右键菜单等相似的控件中来进行使用,所以最好封装public List<Menu1> CreateMenu(){List<Menu1> list = new List<Menu1>();// 一级菜单Menu1 duandian = new Menu1("断点", null);// 二级菜单对象Menu1 duandian2_1 = new Menu1("插入断点", duandian);Menu1 duandian2_2 = new Menu1("插入跟踪点", duandian);Menu1 duandian2_3 = new Menu1("插入临时断点", duandian);// 一级菜单Menu1 pianduan = new Menu1("片段", null);// 二级菜单Menu1 pianduan2_1 = new Menu1("外侧代码", pianduan);list.Add(duandian);list.Add(pianduan);return list;}
}public class Menu1
{// 树形结构的模型定义的方法public List<Menu1> SubMenu { get; set; } // 存储下层数据的list对象public string Name { get; set; } // 存储标题// new Menu1 (军事,null)// new Menu1 (军事1,父级菜单对象) 当前对象添加到父级对象中public Menu1(string name,Menu1 m1){Name = name;if(m1 != null){List<Menu1> m2 = m1.SubMenu ?? new List<Menu1>();m2.Add(this);m1.SubMenu = m2;}}
}

Canvas控件

定义一个区域,可以是其中的子元素相对于canvas进行定位-->
        <!--Canvas.Right="0" 距离canvas右边的距离是0 上下左同理
        定位元素 不要设置两个相对的距离,例如设置了Canvas。Right,就不要设置Canvas.Left

    <Canvas Width="500" Height="300"><StackPanel Width="100" Height="100" Background="Red"></StackPanel><StackPanel Width="100" Height="100" Background="Black"Canvas.Right="0"Canvas.Top="0"></StackPanel><StackPanel Width="100" Height="100" Background="Gray" Canvas.Left="0" Canvas.Bottom="0"></StackPanel><StackPanel Width="100" Height="100" Background="Pink" Canvas.Right="0" Canvas.Bottom="0"></StackPanel><WrapPanel Width="100" Height="100" Background="Yellow" Canvas.Left="200"Canvas.Top="100"></WrapPanel></Canvas><!--<StackPanel Width="500" Height="300" Background="Red"><Button Width="100"Height="100"VerticalAlignment="Top"HorizontalAlignment="Left"Margin="400,0,0,0">按钮</Button></StackPanel>-->
</Grid>

 效果图如下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/571798.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis面试题-缓存穿透,缓存击穿,缓存雪崩

1、穿透: 两边都不存在&#xff08;皇帝的新装&#xff09; &#xff08;黑名单&#xff09; &#xff08;布隆过滤器&#xff09; 解释&#xff1a;请求的数据既不在Redis中也不在数据库中&#xff0c;这时我们创建一个黑名单来存储该数据&#xff0c;下次再有类似的请求进来…

Go第三方框架--gin框架(二)

4. gin框架源码–Engine引擎和压缩前缀树的建立 讲了这么多 到标题4才开始介绍源码&#xff0c;主要原因还是想先在头脑中构建起 一个大体的框架 然后再填肉 这样不容易得脑血栓。标题四主要涉及标题2.3的步骤一 也就是 标题2.3中的 粗线框中的内容 4.1 Engine 引擎的建立 见…

MySQL语句(补充)

目录 一、子查询 1.1.select 语句 1.1.1.相同表查询 1.1.2.多表查询 1.1.3.NOT 1.1.4. insert 1.1.5. update 1.1.6.delete 1.1.7.exists 1.1.8.as别名 二、MySql视图 2.1.视图与表的区别和联系 2.2.建立视图 2.3.修改视图表数据 三、NULL值 四、连接查询 4…

Android Studio详细安装教程及入门测试

Android Studio 是 Android 开发人员必不可少的工具。 它可以帮助开发者快速、高效地开发高质量的 Android 应用。 这里写目录标题 一、Android Studio1.1 Android Studio主要功能1.2 Android应用 二、Android Studio下载三、Android Studio安装四、SDK工具包下载五、新建测试…

以实践助力《银行保险机构数据安全管理办法》规范落地

日前&#xff0c;金融监管总局网站显示&#xff0c;为规范银行业保险业数据处理活动&#xff0c;保障数据安全&#xff0c;促进数据合理开发利用&#xff0c;金融监管总局起草了《银行保险机构数据安全管理办法&#xff08;征求意见稿&#xff09;》&#xff08;下称《办法》&a…

【C语言】strcmp 的使⽤和模拟实现

前言 这篇文章将要带我们去实现模拟一个strcmp函数 首先我们要知道strcmp函数的定义 strcmp()定义和用法 我们先看一下strcmp在cplusplus网站中的定义 链接: link int strcmp ( const char * str1, const char * str2 );比较两个字符串将 C 字符串 str1 与 C 字符串 str2 …

【物联网开源平台】tingsboard安装与编译

别看这篇了&#xff0c;这篇就当我的一个记录&#xff0c;我有空我再写过一篇&#xff0c;编译的时候出现了一个错误&#xff0c;然后我针对那一个错误执行了一个命令&#xff0c;出现了绿色的succes,我就以为整个tingsboard项目编译成功了&#xff0c;后面发现的时候&#xff…

Python中lambda函数使用方法

在Python中&#xff0c;lambda 关键字用于创建匿名函数&#xff08;无名函数&#xff09;&#xff0c;这些函数的特点是简洁、一次性使用&#xff0c;并且通常用于只需要一行表达式的简单场景。下面是lambda函数的基本结构和使用方法&#xff1a; 基本语法&#xff1a; lambd…

JRT菜单

上一章搭建了登录界面的雏形和抽取了登录接口。给多组使用登录和菜单功能提供预留&#xff0c;做到不强行入侵别人业务。任何产品只需要按自己表实现登录接口后配置到容器即可共用登录界面和菜单部分。最后自己的用户关联到JRT角色表即可。 登录效果 这次构建菜单体系 首先用…

A Review on Influence Dissemination in Social Networks

Abstract 影响力传播研究是社交网络信息传播的关键问题。由于影响力分析在营销、广告、个性化推荐、舆情监测等方面的现实意义&#xff0c;研究人员从不同角度研究了该问题并提出了解决方案。在本文中&#xff0c;我们回顾了社交网络中的影响力传播&#xff0c;并得出结论&…

串口IAP介绍

一、STM32编程方式 &#xff08;1&#xff09;在线编程&#xff08;ICP&#xff0c;in circuit programming&#xff09; 系统存储器&#xff1a;留给ST写启动程序代码&#xff0c;启动程序代码通过串口1接口实现对闪存存储器的编程。 &#xff08;2&#xff09;在程序中编程…

深度优先搜索—三种遍历方式

先序遍历、中序遍历、后序遍历 1、先序遍历 2、中序遍历 3、后序遍历