今天无聊时看到必应搜索首页的菜单挺好,于是想着模仿一下。。写着写着发现和我之前做的一个MenuItem很像,干脆直接拿来用了。。。

看看效果:

上图是bing.com首页右上角的下拉菜单,今天就来做了一个这样的。。

我承认我偷懒了,哈是在以前的menuitem外面套了一个popup,

下面就看看主要代码,最后附上下载链接。

新建一个DropDownMenu用户控件:

<UserControl x:Class="wpfcore.DropDownMenu"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:wpfcore"mc:Ignorable="d" x:Name="dropdownmenu"Background="Transparent"Width="40" Height="40"d:DesignHeight="32" d:DesignWidth="32"><Grid><Border x:Name="border"Background="Transparent"Margin="8"MouseUp="OnBorderMouseDown"><Viewbox><Path Fill="Red" SnapsToDevicePixels="True" Stretch="Uniform"Data="M170.666667 213.333333h682.666666v85.333334H170.666667V213.333333z m0 512h682.666666v85.333334H170.666667v-85.333334z m0-256h682.666666v85.333334H170.666667v-85.333334z"/></Viewbox></Border><Popup Placement="Bottom" PlacementTarget="{Binding ElementName=border}"AllowsTransparency="True"IsOpen="{Binding IsOpen,ElementName=dropdownmenu}"StaysOpen="False"PopupAnimation="Slide"VerticalOffset="6"><Border Margin="6"    Background="LightBlue"><Border.Effect><DropShadowEffect BlurRadius="6" ShadowDepth="0" Color="Red"/></Border.Effect><StackPanel><local:SideMenuItem DataContext="{Binding ItemViewModel,ElementName=dropdownmenu}"IsExpanded="True"MenuItemBackground="#24ACF2"MenuItemSelectedBackground="YellowGreen"ToggleBackground="#007ACC"MenuItemSelectedChanged="S"/><local:SideMenuItem DataContext="{Binding ItemViewModel,ElementName=dropdownmenu}"MenuItemBackground="#24ACF2"MenuItemSelectedBackground="YellowGreen"ToggleBackground="#007ACC"MenuItemSelectedChanged="S"/>            </StackPanel></Border></Popup></Grid>
</UserControl>

此控件后台代码:

using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;namespace wpfcore
{public partial class DropDownMenu : UserControl{public bool IsOpen{get { return (bool)GetValue(IsOpenProperty); }set { SetValue(IsOpenProperty, value); }}public static readonly DependencyProperty IsOpenProperty =DependencyProperty.Register("IsOpen", typeof(bool), typeof(DropDownMenu), new PropertyMetadata(false));public DropDownMenu(){ItemViewModel = new SideMenuItemViewModel(){HeaderText = "快速开始",IconGeometry = FindResource("IconInfo") as Geometry,Items = new List<object>(){"5.0新变化","第一个项目","第一个模块","自定义用户","捐赠","FAQ"}};InitializeComponent();}private void OnBorderMouseDown(object sender, MouseButtonEventArgs e){IsOpen = !IsOpen;}public SideMenuItemViewModel ItemViewModel { get; set; }private void S(object sender, RoutedEventArgs e){}}
}

其它代码太多了,直接上链接算了,

链接:https://pan.baidu.com/s/1Ei1BNVCrvZFfv2mQlBX-MA

提取码:bfpv

如果喜欢,点个赞呗~

WPF 用Popup做下拉菜单相关推荐

  1. Excel2021单元格怎么做下拉菜单

    环境: Win10 专业版 Excel 2021 问题描述: Excel2021单元格怎么做下拉菜单 解决方案: 1.选中要设置的这列,点击数据菜单-数据验证 2.点击数据验证 3.跳出菜单,选中序列 ...

  2. 数据有效性做下拉菜单

    数据有效预警管理高级技巧 数据有效性做下拉菜单 数据有效性限制输入范围 输入前提示信息 出错警告 首先,打开excel表格,数据列名"类别",选中需要作用的区域,打开菜单栏中&qu ...

  3. excel2019如何做下拉菜单选项(数据源不占用原表上的单元格)

    作为一个傻不拉几的菜鸟,今天又有收获了,好开心的,虽然被实验室一小姐姐给嫌弃得,不过谁让我脸皮够厚呢,哈哈哈哈. 目的:想在excel表格上增加单独的一列,如,某一列的第一行是姓名,剩下若干行增加一个 ...

  4. Axure教程:用中继器做下拉菜单(含视频教程)

    今天和大家分享一个中继器的高级教程--用中继器来做下拉菜单. 该教程有视频教程,已上传至原型分享群,进群可查看视频及下载原型. 一.原型效果预览 下面是做好的下拉菜单的效果,你们也可以自行体验哈. 原 ...

  5. javaweb和ajax使用查询出来的数据做下拉菜单_不会用Excel做数据筛选,老板叼的你没话说!...

    很多人会做漂亮的表格,自信满满地给老板汇报,老板突然冒出一句话:你给我看下公司员工的学历分布情况. 这个问题能瞬间让很多人傻眼,自然少不了老板的一顿叼.其实数据筛选并不难,只要认真学,10分钟轻松搞定 ...

  6. html用css做下拉菜单,纯css实现下拉菜单

    纯css实现下拉菜单 1.效果如下: 2.html代码 时间最近 时间最近 评论最多 被赞最多 3.css代码 * { margin: 0; padding: 0; } ul { list-style ...

  7. javaweb和ajax使用查询出来的数据做下拉菜单_区块链浏览器实用指南篇:利用链上数据把握减半行情...

    进入2020年,加密货币市场最热的话题当属"减半"了.在减半行情的推动下,以BTC为首的减半币种展现出了极强的上行趋势.如何抓住这一波行情,评估正确时机?当然,这个问题的答案可以说 ...

  8. 用jQuery做下拉菜单

    首先我们要引入官网的jQuery插件,没有的可以上官网下载一个. 然后在构建折叠菜单代码的基本框架 li标签的内容我们可以复制粘贴成多份,情况如下! 搞完这些还不行,代码没样式会显得杂乱无序,所以我们 ...

  9. html导航下拉菜单js点击显示不出来,使用JS做下拉菜单,子菜单不显示

    无标题文档 *{ margin: 0; padding: 0; } a{ text-decoration: none; } #fa{ display: block; width: 100px; hei ...

最新文章

  1. 2500 字全方面解读 Python 的格式化输出
  2. 外媒:Feinstein Institute的研究人员通过脑植入电极唤起触觉
  3. centos transmission 无法开启登录验证
  4. usb 进入suspend_USB的挂起和唤醒 (Suspend and Resume)
  5. [网络安全自学篇] 六十四.Windows安全缺陷利用之SMBv3服务远程代码执行(CVE-2020-0796)复现及防御机理
  6. C++ vector容器中用erase函数和迭代器删除重复元素问题分析
  7. Excel表哥表姐如何突破职业天花板?我有两个忠告
  8. 【BZOJ】1969: [Ahoi2005]LANE 航线规划
  9. ssh登录到esxi机器中后开关虚拟机
  10. SELECT中的多表连接
  11. 表格 滚动条 (tbody部分滚动)
  12. 计算机ps一级知识点,2017年计算机等级一级Photoshop常考知识点
  13. CSS设置字体种类,如宋体,楷体,黑体,仿宋等等。。。。
  14. 大数据与云计算是什么关系
  15. 阿里云弹性计算ECS科普
  16. cgcs2000大地坐标系地图_2000国家大地坐标系
  17. Java岗大厂面试百日冲刺【Day52】— 数据库8 (日积月累,每日三题)
  18. 【历史上的今天】4 月 18 日:第一款交互式电子游戏;IBM 率先研发兆位芯片;硬件公司 Roland 成立
  19. 个人支付接口现状分析——如何选择一个靠谱的个人支付接口
  20. 显示农历天气时钟小部件下载_iOS端当前最火的四款时钟APP小组件评测

热门文章

  1. 删除sql下注册服务器
  2. matlab判断电话播键音,MATLAB电话拨号音的合成与识别
  3. 利用正则表达式截取特定字符中间字符
  4. CS229 1 .线性回归与特征归一化(feature scaling)
  5. [学习笔记]状压dp
  6. Web Storage中的sessionStorage和localStorage
  7. jquery特效(1)—点击展示与隐藏全文
  8. 保存现场数据和状态:onSaveInstanceState\onRestoreInstanceState\onCreate()
  9. 退出Activity(转)
  10. Android系统的体系结构、开发语言及源码结构