Popup:

  1. <StackPanel Grid.Column="0" Grid.Row="6" Orientation="Horizontal">
  2. <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" />
  3. <local:ImageButton x:Name="btn_bg" Margin="5,0" ImgPath="/Images/背景.png"  Width="82" Height="43" Template="{StaticResource ImageButtonTemplate}" Click="btn_bg_Click" />
  4. <local:ImageButton x:Name="btn_jiaojia" Margin="5,0" ImgPath="/Images/脚架.png"  Width="82" Height="43" Template="{StaticResource ImageButtonTemplate}" Click="btn_jiaojia_Click" />
  5. <local:ImageButton x:Name="btn_xiangji" Margin="5,0" ImgPath="/Images/相机.png"  Width="82" Height="43" Template="{StaticResource ImageButtonTemplate}" Click="btn_xiangji_Click" />
  6. </StackPanel>
  7. <Popup x:Name="Pop_bg" PopupAnimation="Fade" Width="88" Height="125" PlacementTarget="{Binding ElementName=btn_bg}" Placement="Top" AllowsTransparency="True" StaysOpen="False" IsOpen="False">
  8. <Border>
  9. <Border.Background>
  10. <ImageBrush ImageSource="/AutoCamera;component/Images/下拉背景.png" />
  11. </Border.Background>
  12. <StackPanel Margin="5">
  13. <local:ImageButton Width="70" Height="31" ImgPath="/Images/上升.png" Margin="2,10" Template="{StaticResource ImageButtonTemplate}" />
  14. <local:ImageButton Width="70" Height="31" ImgPath="/Images/下降.png" Margin="2" Template="{StaticResource ImageButtonTemplate}" />
  15. </StackPanel>
  16. </Border>
  17. </Popup>
  18. <Popup x:Name="Pop_jiaojia" PopupAnimation="Fade" Width="88" Height="125" PlacementTarget="{Binding ElementName=btn_jiaojia}" Placement="Top" AllowsTransparency="True" StaysOpen="False" IsOpen="False">
  19. <Border>
  20. <Border.Background>
  21. <ImageBrush ImageSource="/AutoCamera;component/Images/下拉背景.png" />
  22. </Border.Background>
  23. <StackPanel Margin="5">
  24. <local:ImageButton Width="70" Height="31" ImgPath="/Images/上升.png" Margin="2" Template="{StaticResource ImageButtonTemplate}" />
  25. <local:ImageButton Width="70" Height="31" ImgPath="/Images/复位.png" Margin="2" Template="{StaticResource ImageButtonTemplate}" />
  26. <local:ImageButton Width="70" Height="31" ImgPath="/Images/下降.png" Margin="2" Template="{StaticResource ImageButtonTemplate}" />
  27. </StackPanel>
  28. </Border>
  29. </Popup>
  30. <Popup x:Name="Pop_xiangji" PopupAnimation="Fade" Width="88" Height="125" PlacementTarget="{Binding ElementName=btn_xiangji}" Placement="Top" AllowsTransparency="True" StaysOpen="False" IsOpen="False">
  31. <Border>
  32. <Border.Background>
  33. <ImageBrush ImageSource="/AutoCamera;component/Images/下拉背景.png" />
  34. </Border.Background>
  35. <StackPanel Margin="5">
  36. <local:ImageButton Width="70" Height="31" ImgPath="/Images/上升.png" Margin="2" Template="{StaticResource ImageButtonTemplate}" />
  37. <local:ImageButton Width="70" Height="31" ImgPath="/Images/复位.png" Margin="2" Template="{StaticResource ImageButtonTemplate}" />
  38. <local:ImageButton Width="70" Height="31" ImgPath="/Images/下降.png" Margin="2" Template="{StaticResource ImageButtonTemplate}" />
  39. </StackPanel>
  40. </Border>
  41. </Popup>

截图:
         


弹出菜单:

MyResDic.xaml

  1. <ControlTemplate x:Key="SelfMenuItemTemplate" TargetType="{x:Type MenuItem}">
  2. <Border Background="Transparent"  Height="25">
  3. <StackPanel Orientation="Horizontal">
  4. <Rectangle Width="5" Height="25" Name="mousemark" Fill="Gray" />
  5. <TextBlock Margin="5,0" VerticalAlignment="Center" Text="{Binding Header, RelativeSource={RelativeSource TemplatedParent}}"/>
  6. </StackPanel>
  7. </Border>
  8. <ControlTemplate.Triggers>
  9. <Trigger Property="IsMouseOver" Value="True">
  10. <Setter TargetName="mousemark" Property="Fill" Value="Blue" />
  11. </Trigger>
  12. </ControlTemplate.Triggers>
  13. </ControlTemplate>

MainWindow.xaml

  1. <local:ImageButton x:Name="btn_set" Width="27" Height="26" VerticalAlignment="Top"  ImgPath="/Images/设置菜单.png" Template="{StaticResource ImageButtonTemplate}" Click="btn_set_Click">
  2. <local:ImageButton.ContextMenu>
  3. <ContextMenu Name="menu" Placement="MousePoint" Width="200">
  4. <MenuItem Header="修改密码" Template="{StaticResource SelfMenuItemTemplate}" />
  5. <MenuItem Header="设置照片存放位置" Template="{StaticResource SelfMenuItemTemplate}" />
  6. <MenuItem Header="设置套系解析位置" Template="{StaticResource SelfMenuItemTemplate}" />
  7. <MenuItem Header="进入官网" Template="{StaticResource SelfMenuItemTemplate}" />
  8. <ContextMenu.Template>
  9. <ControlTemplate TargetType="{x:Type ContextMenu}">
  10. <Border Margin="10,10" Background="AliceBlue">
  11. <ItemsPresenter Margin="2,2" />
  12. <Border.Effect>
  13. <DropShadowEffect BlurRadius="8" Opacity="0.5" />
  14. </Border.Effect>
  15. </Border>
  16. </ControlTemplate>
  17. </ContextMenu.Template>
  18. </ContextMenu>
  19. </local:ImageButton.ContextMenu>
  20. </local:ImageButton>

截图:


下面给大家欣赏下整个界面好了,请允许我小小的嘚瑟下~



工程下载地址(只实现了界面哦~):
http://yun.baidu.com/share/link?shareid=1484254303&uk=3508115909

WPF自定义Popup和弹出菜单的更多相关文章

  1. WPF 左键单击弹出菜单 ContextMenu

    原文:WPF 左键单击弹出菜单 ContextMenu WPF中的ContextMenu在XAML中可直接做出来,但是仅限于右键弹出菜单,如果需要添加左键弹出功能,只需要在事件中添加Click事件 X ...

  2. [译]GLUT教程 - 弹出菜单基础

    Lighthouse3d.com >> GLUT Tutorial >> Pop-up Menus >> Popup Menus 弹出菜单也是GLUT的一部分.虽然 ...

  3. PopupWindow(2)简单示例-自定义弹出菜单

    本示例,用 popupWindow 自定义弹出菜单 public class CustomActionProvider extends ActionProvider implements OnMenu ...

  4. WPF 之 左键弹出操作菜单,并禁用右键菜单

    在目前的WPF版本中,很多的控件都有一个ContextMenu的属性,可以设置组件的右键菜单,这点确实是很方便,但是有些时候我们可能会需要当单击鼠标左键才弹出这个ContextMenu,而不是单击鼠标 ...

  5. 用PopupWindow实现弹出菜单(弹出的菜单采用自定义布局)

         用PopupWindow实现弹出菜单是一个比较好的方式.当然我们还有一个类PopupMenu也能实现弹出菜单,但那个太过于局限了,所以不是很推荐. 这个实例的效果是这样的:点击按钮后,一个菜 ...

  6. 【Android】5.6 弹出菜单(PopUp Menus)

    分类:C#.Android.VS2015: 创建日期:2016-02-07 一.简介 功能描述:用户单击按钮弹出菜单.当用户选择一个菜单项,会触发MenuItemClick事件并让弹出的菜单消失:如果 ...

  7. 向上弹出菜单jQuery插件

    插件名:柯乐义英文名:Keleyijs文件名称:jquery.keleyi.js插件功能:该插件可以让你轻易地在页面上构建一个向上弹出的二级菜单. 示例查看:http://keleyi.com/kel ...

  8. [Flex] PopUpButton系列 —— 弹出菜单的行高设置

    <?xml version="1.0" encoding="utf-8"?> <!--Flex中如何通过variableRowHeight样式 ...

  9. [Flex] PopUpButton系列 —— 控制弹出菜单的透明度、可用、可选择状态

    <?xml version="1.0" encoding="utf-8"?><!--控制弹出菜单的透明度.可用.可选择状态 PopUpButt ...

随机推荐

  1. 大规模SOA系统中的分布事务思考

    首先是不建议采用XA两阶段提交方式去处理分布式事务,要知道要能够支持XA分布式事务,必须是要实现XA规范才可以,而Service本身是无状态的,如果这样去做了等于是把Service内部的东西暴露了出去 ...

  2. 【Vijos1534】高性能计算机(DP)

    题意:有NA个A与NB个B两种任务需要完成,完成一段长度为X的A任务需要时间ta+ka*x*x,B任务类似,连续的同一种任务不能分成两段运行 有P台可以并行运算的计算机,求最快完成所有任务的时间 1≤ ...

  3. toUpperCase与toLowerCase

    public String toLowerCase()此方法返回的字符串转换为小写. public String toUpperCase()此方法返回的字符串转换为大写. 注:支队英文字符有效,其他字 ...

  4. 在 .Net Core xUnit test 项目中使用配置文件

    在对项目做集成测试的时候,经常会需要用到一些参数比如用户名密码等,这些参数不宜放在测试代码中.本文介绍一种方法:使用配置文件. 添加配置文件 在集成测试项目目录下新建文件:Configuration. ...

  5. 获取某个元素相对于视窗的位置-getBoundingClientRect

    1. getBoundingClientRect用于获取某个元素相对于视窗的位置集合.集合中有top, right, bottom, left等属性. 语法:这个方法没有参数 rectObject = ...

  6. Java原来如此-反射机制

    在Java运行时环境中,对于任意一个类,能知道这个类有哪些属性和方法.对于任意一个对象,能调用它的任意一个方法.这种动态获取类的信息以及动态调用对象的方法的功能来自于Java语言的反射(Reflect ...

  7. Codeforces Gym101502 K.Malek and Summer Semester

    K. Malek and Summer Semester   time limit per test 1.0 s memory limit per test 256 MB input standard ...

  8. 空间划分的数据结构(网格/四叉树/八叉树/BSP树/k-d树/BVH/自定义划分)

    目录 网格 (Grid) 网格的应用 四叉树/八叉树 (Quadtree/Octree) 四叉树/八叉树的应用 BSP树 (Binary Space Partitioning Tree) 判断点在平面 ...

  9. RabbitMQ 核心概念

    目录 RabbitMQ 特点 AMQP 协议 RabbitMQ 消息传递机制 Message Exchange 1. 简介 2. 类型 3. 属性 RabbitMQ 特点 RabbitMQ 相较于其他 ...

  10. Spring Boot中使用AOP记录请求日志

    这周看别人写的springboot后端代码中有使用AOP记录请求日志,以前没接触过,因此学习下. 一.AOP简介 AOP为Aspect Oriented Programming的缩写,意为:面向切面编 ...