WPF —— Expander折叠栏 、菜单标签 menu

Expander

1 :Expander折叠栏 简介

Expander控件有一个箭头按钮。单击箭头时,Expander中的子元素将显示或隐藏。箭头“展开”控件,使其子控件可见。

2 :Expander常用的属性

IsEnabled 默认是打开或者折叠起来,true就是展开 false折叠
ExpandDirection 展开的方向 down 向下展开

展开标签一般展开方向是上下,不设置高度
一般展开方向是左右,不设置宽度
VerticalAlignment= "top" HorizontalAlignment="Center" 展开宽随着内容进行自适应

3 关于Expander的实例

<Expander IsEnabled="True" ExpandDirection="Down" Width="200" BorderThickness="2" BorderBrush="Green"VerticalAlignment="Top" HorizontalAlignment="Center"><Expander.Header>我的好友</Expander.Header><StackPanel Orientation="Vertical"><CheckBox IsChecked="True" Margin="0,10">马云</CheckBox><CheckBox Margin="0,10">马化腾</CheckBox><CheckBox Margin="0,10">许家印</CheckBox></StackPanel>
</Expander>

Menu

1:Menu菜单简介

Menu 表示一个 Windows 菜单控件,该控件可用于按层次组织与命令和事件处理程序关联的元素。

    该 Menu 控件提供一个项列表,用于指定应用程序的命令或选项。 通常,单击菜单上的项会打开子菜单或导致应用程序执行命令。

2 :Menu常用的属性

子菜单是: <MenuItem></MenuItem> ,子菜单标签又可以添加子菜单项
MenuItem.Icon 设置菜单图标的,
MenuItem.Header 和header属性都可以设置标题
MenuItem.Template 自定义子菜单

FlowDirection="RightToLeft" 菜单的排布方向
        LeftToRight 先排左边在拍右边

子菜单的事件:最常用的是通过click进行绑定点标题三击事件,通过界面命令进行绑定事件RoutedCommand
点击子菜单之后进行页面跳转,使用frame标签,navigate的方法进行跳转

3 关于Menu的实例

路由:一个菜单对应的是一个以页面 这种对应关系就是路由
    使用自定义RoutedUICommand(路由UI指令) 可以将一些预定义的操作绑定到应用程序的按钮或者菜单等控件上,
    这些命令可以直接触发相应的事件,例如click、例如 click,keydown事件等

<Window.Resources>
    <RoutedCommand x:Key="myCmd"></RoutedCommand>
</Window.Resources>

2 给"myCmd命令绑定什么样的操作
    Executed事件,当页面切换的时候,就是等同于点击了子菜单项,

<Window.CommandBindings Command="{StaticResource myCmd}"
                        Executed ="CommandBinging_Executed">
</Window.CommandBindings>

  <Menu Height="40" VerticalAlignment="Top"><MenuItem Header="出入管理" FontFamily="华文行楷"FontSize="20" BorderThickness="0,0,1,0"BorderBrush="Gray"Height="40"Command="{StaticResource myCmd}"></MenuItem><MenuItem Header="请假管理" FontFamily="华文行楷"FontSize="20" Height="40"></MenuItem><!--FlowDirection="RightToLeft" 菜单的排布方向LeftToRight 先排左边在拍右边--><MenuItem Header="考勤管理" 
FontFamily="华文行楷"
FontSize="20" 
Height="40"
FlowDirection="LeftToRight"><!--设置图标--><MenuItem.Icon><Image Width="40"Height="40" Source="https://img0.baidu.com/it/u=2374472521,3444438693"></Image></MenuItem.Icon><!--二级菜单--><MenuItem Header="考勤打卡" FontFamily="宋体" Height="40" FontSize="20"><!--三级菜单--><MenuItem><MenuItem.Header><TextBlock>2021班考勤打卡</TextBlock></MenuItem.Header></MenuItem><Separator></Separator><MenuItem><MenuItem.Header><TextBlock>2022班考勤打卡</TextBlock></MenuItem.Header></MenuItem></MenuItem><MenuItem Header="缺卡管理" FontFamily="宋体" Height="40" FontSize="20" Command="{StaticResource myCmd}"></MenuItem></MenuItem>

自定义菜单项

        <MenuItem><!--自定义菜单项的模板标签--><MenuItem.Template><!--ControlTemplate 控件模板TargetType作用到哪种类型标签上 --><ControlTemplate TargetType="MenuItem"><TextBlock Name="Text" Text="原子弹管理"Padding="8"FontSize="20"FontFamily="华文行楷"></TextBlock><!--Triggers 触发 Property="IsMouseOver" 鼠标是否放上去Value="true" 放上去--><ControlTemplate.Triggers><Trigger Property="IsMouseOver"Value="true"><Setter TargetName="Text" Property="Background" Value="blue"></Setter></Trigger></ControlTemplate.Triggers></ControlTemplate></MenuItem.Template></MenuItem></Menu><!--设置frame进行跳转NavigationUIVisibility="Hidden"因此自带前进和后退--><Frame Name="f1" Margin="0,40,0,0" NavigationUIVisibility="Hidden"></Frame>
</Grid>

p1页面

  <Grid Background="Green">
      <TextBlock>我是page1</TextBlock>
  </Grid>

 

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

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

相关文章

漏洞挖掘 | EDU小通用漏洞分享

1.信息搜集 首先就是信息搜集&#xff0c;挖edu没账号怎么办呢&#xff1f;sg妹子不行&#xff0c;咱就找能自己注册的站。 Hunter&#xff1a;web.title”XX大学”&&web.body”注册” Fofa&#xff1a;host”.edu.cn” && body”注册” && country”…

Java基础内容汇总(上)

目录 一、基础二、数组三、类和对象四、面向对象特征之一&#xff1a;封装与隐藏4.1、构造器(构造方法)4.2、this 的使用4.3、关键字—import 五、继承5.1、方法的重写(override/overwrite)5.2、关键字&#xff1a;super 六、多态6.1、操作符与equals方法6.2、toString的使用6.…

C++ 3.25作业

1、定义自己的命名空间&#xff0c;其中有string类型的变量&#xff0c;再定义两个函数&#xff0c;一个函数完成字符串的输入&#xff0c;一个函数完成求字符串长度&#xff0c;再定义一个全局函数完成对该字符串的反转 #include <iostream>using namespace std;namesp…

C/C++语言相关常见面试题总结

目录 const关键字的作用 volatile 关键字 #define和const有什么区别 decltype和auto的区别 extern 关键字的作用 如何避免野指针 C/C中的类型转换以及使用场景 什么是RTTI&#xff1f;其原理是什么&#xff1f; RTTI 的原理&#xff1a; C中引用和指针的区别 C11用过…

PyCharm环境下Git与Gitee联动:本地与远程仓库操作实战及常见问题解决方案

写在前面&#xff1a;本博客仅作记录学习之用&#xff0c;部分图片来自网络&#xff0c;如需引用请注明出处&#xff0c;同时如有侵犯您的权益&#xff0c;请联系删除&#xff01; 文章目录 前言下载及安装GitGit的使用设置用户签名设置用户安全目录Git基本操作Git实操操作 Pyc…

libVLC 视频缩放

libvlc是一个常用的开源多媒体框架&#xff0c;它可以用来播放和处理各种类型的音频和视频文件。如果想要缩放视频&#xff0c;可以通过libvlc提供的API来实现。 //设置视频的缩放比例。 libvlc_video_set_scale() 以下是如何使用 libVLC 设置视频缩放的基本步骤&#xff1a;…

Leetcode算法题笔记(2)

目录 图论51. 岛屿数量解法一 52. 腐烂的橘子解法一 53. 课程表解法一 54. 实现 Trie (前缀树)解法一 回溯55. 全排列解法一 56. 子集解法一解法二 57. 电话号码的字母组合解法一 58. 组合总和解法一解法二 59. 括号生成解法一解法二 60. 单词搜索解法一 61. 分割回文串解法一 …

用户验证:Streamlit应用程序与Streamlit-Authenticator

写在前面 在数字化时代&#xff0c;数据安全和用户隐私越来越受到重视。对于使用Streamlit构建的Web应用程序来说&#xff0c;确保用户的安全身份验证是至关重要的。而Streamlit-Authenticator&#xff0c;作为一个专门为Streamlit应用程序设计的身份验证库&#xff0c;正成为保…

【C语言】linux内核pci_enable_device函数和_PCI_NOP宏

pci_enable_device 一、注释 static int pci_enable_device_flags(struct pci_dev *dev, unsigned long flags) {struct pci_dev *bridge;int err;int i, bars 0;/** 此时电源状态可能是未知的&#xff0c;可能是由于新启动或者设备移除调用。* 因此获取当前的电源状态&…

51单片机入门:定时器与中断系统

定时器的介绍 定时器&#xff1a;51单片机的定时器属于单片机的内部资源&#xff0c;其电路的设计连接和运转均在单片机内部完成。根据单片机内部的时钟或者外部的脉冲信号对寄存器中的数据加1&#xff0c;定时器实质就是加1计数器。因为又可以定时又可以计数&#xff0c;又称…

力扣算题【第二期】

文章目录 1.反转链表1.1 算法题目1.2 算法思路1.3 代码实现 2.回文链表2.1 算法题目2.2 算法思路2.3 代码实现 1.反转链表 1.1 算法题目 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 1.2 算法思路 1.设置工作指针p,来遍历链表。 2.采…