【WPF】使用Popup控件做浮窗/提示框
需求:当鼠标移入某个区域时,弹出一个浮窗,以便用户进行下一步操作。
效果如下图:
当鼠标移入左上角的【多选显示】框内,出现下面的浮窗(悬浮在原UI之上)。当在浮窗外点击鼠标左键时,隐藏该浮窗。
由于该浮窗的内容较多,最好单独做成一个UserControl。
使用UserControl的方法参考这篇文章:
http://www.cnblogs.com/shuang121/archive/2013/01/09/2853591.html
前台布局:
<Border BorderBrush="Black" Width="60" Height="40" Margin="5" BorderThickness="1" Background="White" MouseEnter="border_MouseEnter">
<Grid>
<TextBlock Text="多项选择" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<Popup Name="pop1" StaysOpen="False">
<local:BrandSelectView x:Name="brandSelectView" HorizontalAlignment="Left"/>
</Popup>
</Grid>
</Border>
说明:这里用的是Border边框控件,由于该控件只能有一个Content,所以为了同时包含Popup及其在边框中显示的文字TextBlock,采用了一个Grid来包裹。
后台对于Popup控件的操作只有鼠标移入事件:
private void border_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
{
pop1.IsOpen = false;
pop1.IsOpen = true;
}
说明:为何要先IsOpen = false再IsOpen = false,下边有解释。
摘录一下大神的原话:
“在其他地方点击之后,pop1并不是自动关闭了,而是跑到其他控件后面去了
所以你再让它打开,它其实已经是打开的,而且已经在后面,所以看不到了.
你先让它关闭,再打开,就又跑到前面来了.”
【WPF】使用Popup控件做浮窗/提示框的更多相关文章
- WPF 设置WebBrowser控件不弹脚本错误提示框
using System.Reflection; using System.Windows; using System.Windows.Controls; using System.Windows.N ...
- WPF中Popup控件在Win7以及Win10等中的对齐点方式不一样的解决方案 - 简书
原文:WPF中Popup控件在Win7以及Win10等中的对齐点方式不一样的解决方案 - 简书 最近项目中使用弹出控件Popup,发现弹出框的对齐方式在不同的系统中存在不同(Popup在win10上是 ...
- 关于WPF中Popup控件的小记
在wpf开发中,常需要在鼠标位置处弹出一个“提示框”(在此就以“提示框”代替吧),通过“提示框”进行信息提示或者数据操作,如果仅仅是提示作用,使用ToolTip控件已经足够,但是有些是需要在弹出的框中 ...
- WPF中Popup控件的使用
一.Popup控件的主要属性 Popup表示具有内容的弹出窗口,其主要属性为: Child:获取或设置 Popup控件的内容. IsOpen:获取或设置一个值,该值指示Popup 是否可见 Place ...
- WPF 调用WinForm控件
WPF可以使用WindowsFormsHost控件做为容器去显示WinForm控件,类似的用法网上到处都是,就是拖一个WindowsFormsHost控件winHost1到WPF页面上,让后设置win ...
- WPF自定义分页控件,样式自定义,简单易用
WPF自定义分页控件 做了许久伸手党,终于有机会贡献一波,搜索一下WPF分页控件,还是多,但是不太通用,主要就是样式问题,这个WPF很好解决,还有一个就是分页控件嘛,只关心几个数字的变动就行了,把页码 ...
- wpf 客户端【JDAgent桌面助手】开发详解(四) popup控件的win8.0的bug
目录区域: 业余开发的wpf 客户端终于完工了..晒晒截图 wpf 客户端[JDAgent桌面助手]开发详解-开篇 wpf 客户端[JDAgent桌面助手]详解(一)主窗口 圆形菜单... wpf 客 ...
- WPF Popup 控件导致被遮挡内容不刷新的原因
WPF Popup 控件导致被遮挡内容不刷新的原因 周银辉 今天在写一个WPF控件时用到了Popup控件,很郁闷的情况是:当popup关闭时,原来被popup挡住的界面部分不刷新,非要手动刷新一下(比 ...
- 【WPF】监听WPF的WebBrowser控件弹出新窗口的事件
原文:[WPF]监听WPF的WebBrowser控件弹出新窗口的事件 WPF中自带一个WebBrowser控件,当我们使用它打开一个网页,例如百度,然后点击它其中的链接时,如果这个链接是会弹出一个新窗 ...
随机推荐
- Java设计模式中的单例模式
有时候在实际项目的开发中,我们会碰到这样一种情况,该类只允许存在一个实例化的对象,不允许存在一个以上的实例化对象,我们将这种情况称为Java设计模式中的单例模式.设计单例模式主要采用了Java的pri ...
- jquery json ajax三级联动
province_city_area.jsp <%@ page language="java" pageEncoding="UTF-8"%> < ...
- 【转载】spring mvc 使用session
http://home.51.com/gaoyangboy/diary/item/10036382.html Spring2.5 访问 Session 属性的四种策略 Posted on 2008-1 ...
- PHP5.3新特性
1.首先对之前滥用的语法进行了规范 众所周知PHP在语言开发过程中有一个很好的容错性,导致在数组或全局变量中包含字符串不使用引号是可以不报错的,很多业余的开发者因为懒惰而产生的安全问题十分严重,之所以 ...
- Oracle查询结果中:一列中相同的值或一列中重复的值,只显示一次
http://www.itpub.net/thread-1768915-1-1.html 问题: CREATE TABLE test(ob_id VARCHAR(32),ob_name VARCHAR ...
- 连表查询都用Left Join吧 以Windows服务方式运行.NET Core程序 HTTP和HTTPS的区别 ASP.NET SignalR介绍 asp.net—WebApi跨域 asp.net—自定义轻量级ORM C#之23中设计模式
连表查询都用Left Join吧 最近看同事的代码,SQL连表查询的时候很多时候用的是Inner Join,而我觉得对我们的业务而言,99.9%都应该使用Left Join(还有0.1%我不知道在 ...
- android使用JsonWriter拼json字符串
JsonWriter使用 Example: 拼一个如下的json格式String { [ { "id": 912345678901, ...
- Log4Net基本配置
开源日志管理工具,项目主页:http://logging.apache.org/log4net/ 基本用法: 1.程序目录新建目录“Config”,目录内新建文件“log4net.config”,右键 ...
- Yii2 mongodb 扩展的where的条件加入大于小于号浅析(转)
1. mongodb的where中有比较丰富的 条件,如下: static $builders = [ 'NOT' => 'buildNotCondition', 'AND' => 'bu ...
- Spring MVC 的xml一些配置
1.可以自动加载注解驱动,通过注解找到对应Controller <!-- spring MVC 注解驱动 --> <mvc:annotation-driven></mvc ...