WPF自定义Popup和弹出菜单
Popup:
- <StackPanel Grid.Column="0" Grid.Row="6" Orientation="Horizontal">
 - <local:ImageButton x:Name="btn_back2" Margin="10,0,5,0" ImgPath="/Images/返回2.png" Width="112" Height="43" Template="{StaticResource ImageButtonTemplate}" Click="btn_back2_Click" />
 - <local:ImageButton x:Name="btn_bg" Margin="5,0" ImgPath="/Images/背景.png" Width="82" Height="43" Template="{StaticResource ImageButtonTemplate}" Click="btn_bg_Click" />
 - <local:ImageButton x:Name="btn_jiaojia" Margin="5,0" ImgPath="/Images/脚架.png" Width="82" Height="43" Template="{StaticResource ImageButtonTemplate}" Click="btn_jiaojia_Click" />
 - <local:ImageButton x:Name="btn_xiangji" Margin="5,0" ImgPath="/Images/相机.png" Width="82" Height="43" Template="{StaticResource ImageButtonTemplate}" Click="btn_xiangji_Click" />
 - </StackPanel>
 - <Popup x:Name="Pop_bg" PopupAnimation="Fade" Width="88" Height="125" PlacementTarget="{Binding ElementName=btn_bg}" Placement="Top" AllowsTransparency="True" StaysOpen="False" IsOpen="False">
 - <Border>
 - <Border.Background>
 - <ImageBrush ImageSource="/AutoCamera;component/Images/下拉背景.png" />
 - </Border.Background>
 - <StackPanel Margin="5">
 - <local:ImageButton Width="70" Height="31" ImgPath="/Images/上升.png" Margin="2,10" Template="{StaticResource ImageButtonTemplate}" />
 - <local:ImageButton Width="70" Height="31" ImgPath="/Images/下降.png" Margin="2" Template="{StaticResource ImageButtonTemplate}" />
 - </StackPanel>
 - </Border>
 - </Popup>
 - <Popup x:Name="Pop_jiaojia" PopupAnimation="Fade" Width="88" Height="125" PlacementTarget="{Binding ElementName=btn_jiaojia}" Placement="Top" AllowsTransparency="True" StaysOpen="False" IsOpen="False">
 - <Border>
 - <Border.Background>
 - <ImageBrush ImageSource="/AutoCamera;component/Images/下拉背景.png" />
 - </Border.Background>
 - <StackPanel Margin="5">
 - <local:ImageButton Width="70" Height="31" ImgPath="/Images/上升.png" Margin="2" Template="{StaticResource ImageButtonTemplate}" />
 - <local:ImageButton Width="70" Height="31" ImgPath="/Images/复位.png" Margin="2" Template="{StaticResource ImageButtonTemplate}" />
 - <local:ImageButton Width="70" Height="31" ImgPath="/Images/下降.png" Margin="2" Template="{StaticResource ImageButtonTemplate}" />
 - </StackPanel>
 - </Border>
 - </Popup>
 - <Popup x:Name="Pop_xiangji" PopupAnimation="Fade" Width="88" Height="125" PlacementTarget="{Binding ElementName=btn_xiangji}" Placement="Top" AllowsTransparency="True" StaysOpen="False" IsOpen="False">
 - <Border>
 - <Border.Background>
 - <ImageBrush ImageSource="/AutoCamera;component/Images/下拉背景.png" />
 - </Border.Background>
 - <StackPanel Margin="5">
 - <local:ImageButton Width="70" Height="31" ImgPath="/Images/上升.png" Margin="2" Template="{StaticResource ImageButtonTemplate}" />
 - <local:ImageButton Width="70" Height="31" ImgPath="/Images/复位.png" Margin="2" Template="{StaticResource ImageButtonTemplate}" />
 - <local:ImageButton Width="70" Height="31" ImgPath="/Images/下降.png" Margin="2" Template="{StaticResource ImageButtonTemplate}" />
 - </StackPanel>
 - </Border>
 - </Popup>
 
截图:    
     
弹出菜单:
MyResDic.xaml
- <ControlTemplate x:Key="SelfMenuItemTemplate" TargetType="{x:Type MenuItem}">
 - <Border Background="Transparent" Height="25">
 - <StackPanel Orientation="Horizontal">
 - <Rectangle Width="5" Height="25" Name="mousemark" Fill="Gray" />
 - <TextBlock Margin="5,0" VerticalAlignment="Center" Text="{Binding Header, RelativeSource={RelativeSource TemplatedParent}}"/>
 - </StackPanel>
 - </Border>
 - <ControlTemplate.Triggers>
 - <Trigger Property="IsMouseOver" Value="True">
 - <Setter TargetName="mousemark" Property="Fill" Value="Blue" />
 - </Trigger>
 - </ControlTemplate.Triggers>
 - </ControlTemplate>
 
MainWindow.xaml
- <local:ImageButton x:Name="btn_set" Width="27" Height="26" VerticalAlignment="Top" ImgPath="/Images/设置菜单.png" Template="{StaticResource ImageButtonTemplate}" Click="btn_set_Click">
 - <local:ImageButton.ContextMenu>
 - <ContextMenu Name="menu" Placement="MousePoint" Width="200">
 - <MenuItem Header="修改密码" Template="{StaticResource SelfMenuItemTemplate}" />
 - <MenuItem Header="设置照片存放位置" Template="{StaticResource SelfMenuItemTemplate}" />
 - <MenuItem Header="设置套系解析位置" Template="{StaticResource SelfMenuItemTemplate}" />
 - <MenuItem Header="进入官网" Template="{StaticResource SelfMenuItemTemplate}" />
 - <ContextMenu.Template>
 - <ControlTemplate TargetType="{x:Type ContextMenu}">
 - <Border Margin="10,10" Background="AliceBlue">
 - <ItemsPresenter Margin="2,2" />
 - <Border.Effect>
 - <DropShadowEffect BlurRadius="8" Opacity="0.5" />
 - </Border.Effect>
 - </Border>
 - </ControlTemplate>
 - </ContextMenu.Template>
 - </ContextMenu>
 - </local:ImageButton.ContextMenu>
 - </local:ImageButton>
 
截图:
下面给大家欣赏下整个界面好了,请允许我小小的嘚瑟下~
工程下载地址(只实现了界面哦~):
http://yun.baidu.com/share/link?shareid=1484254303&uk=3508115909
WPF自定义Popup和弹出菜单的更多相关文章
- WPF 左键单击弹出菜单 ContextMenu
		
原文:WPF 左键单击弹出菜单 ContextMenu WPF中的ContextMenu在XAML中可直接做出来,但是仅限于右键弹出菜单,如果需要添加左键弹出功能,只需要在事件中添加Click事件 X ...
 - [译]GLUT教程 - 弹出菜单基础
		
Lighthouse3d.com >> GLUT Tutorial >> Pop-up Menus >> Popup Menus 弹出菜单也是GLUT的一部分.虽然 ...
 - PopupWindow(2)简单示例-自定义弹出菜单
		
本示例,用 popupWindow 自定义弹出菜单 public class CustomActionProvider extends ActionProvider implements OnMenu ...
 - WPF 之 左键弹出操作菜单,并禁用右键菜单
		
在目前的WPF版本中,很多的控件都有一个ContextMenu的属性,可以设置组件的右键菜单,这点确实是很方便,但是有些时候我们可能会需要当单击鼠标左键才弹出这个ContextMenu,而不是单击鼠标 ...
 - 用PopupWindow实现弹出菜单(弹出的菜单采用自定义布局)
		
用PopupWindow实现弹出菜单是一个比较好的方式.当然我们还有一个类PopupMenu也能实现弹出菜单,但那个太过于局限了,所以不是很推荐. 这个实例的效果是这样的:点击按钮后,一个菜 ...
 - 【Android】5.6 弹出菜单(PopUp Menus)
		
分类:C#.Android.VS2015: 创建日期:2016-02-07 一.简介 功能描述:用户单击按钮弹出菜单.当用户选择一个菜单项,会触发MenuItemClick事件并让弹出的菜单消失:如果 ...
 - 向上弹出菜单jQuery插件
		
插件名:柯乐义英文名:Keleyijs文件名称:jquery.keleyi.js插件功能:该插件可以让你轻易地在页面上构建一个向上弹出的二级菜单. 示例查看:http://keleyi.com/kel ...
 - [Flex] PopUpButton系列 —— 弹出菜单的行高设置
		
<?xml version="1.0" encoding="utf-8"?> <!--Flex中如何通过variableRowHeight样式 ...
 - [Flex] PopUpButton系列 —— 控制弹出菜单的透明度、可用、可选择状态
		
<?xml version="1.0" encoding="utf-8"?><!--控制弹出菜单的透明度.可用.可选择状态 PopUpButt ...
 
随机推荐
- gridview中的相关事件操作
			
原文发布时间为:2008-07-27 -- 来源于本人的百度文章 [由搬家工具导入] using System;using System.Data;using System.Configuration ...
 - C语言标准库
			
共15个,请查看,在linux下的目录位/usr/share/include assert.h ctype.h errno.h float.h limits.h locale.h math.h set ...
 - hdu 5455(字符串处理)
			
Fang Fang Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total S ...
 - 浅谈DPCHookSSDT和RemoveDPC
			
最近学了DPC这一对,把Win7 32位和64位都做了,查阅了大量的资料,并且进行了大量调试,理一下思路,为了后面更好的学习. 转载请注明出处:http://www.cnblogs.com/littl ...
 - BZOJ1003物流運輸 DP + SPFA
			
@[DP, SPFA] Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要\(n\)天才能运完.货物运输过程中一般要转 停好几个码头.物流公司通常会设计一条固定的运 ...
 - PHP微信公众平台OAuth2.0网页授权,获取用户信息代码类封装demo(二)
			
一.这个文件微信授权使用的是OAuth2.0授权的方式.主要有以下简略步骤: 第一步:判断有没有code,有code去第三步,没有code去第二步 第二步:用户同意授权,获取code 第三步:通过co ...
 - 开源BT磁力搜索引擎收集
			
基本是利用bt网络中p2p技术实现,开源项目上实现了dht网络的搜索.是学习dht算法的好项目. https://lanmaowz.com/open-dht-spider/ https://githu ...
 - 关于#!/usr/bin/env python 的用法
			
在linux的一些脚本里,需在开头一行指定脚本的解释程序,如: !/usr/bin/env python 再如: !/usr/bin/env perl 那么 env到底有什么用?何时用这个呢?脚本用e ...
 - Cookie学习笔记二:Cookie实例
			
今天说说刚刚学到的两个Cookie的最经典应用:自己主动登录和购物车设置 一:自己主动登录 须要两个页面:login.jsp与index.jsp,login.jsp用来输出登录信息,index.jsp ...
 - USACO 1.2 Milking Cows (枚举)
			
标记数组(哈希) 1e6的范围,开一个char数组全然能够,有人为1,无人为0,注意边界就可以.最后线性扫描就可以. 时间复杂度,应该是O(n),n为最后结束的时间. 缺点就是--比較慢 /* ID: ...