【WPF】使用Popup控件做浮窗/提示框
2016-12-03 10:46
211 查看
需求:当鼠标移入某个区域时,弹出一个浮窗,以便用户进行下一步操作。
效果如下图:
当鼠标移入左上角的【多选显示】框内,出现下面的浮窗(悬浮在原UI之上)。当在浮窗外点击鼠标左键时,隐藏该浮窗。
由于该浮窗的内容较多,最好单独做成一个UserControl。
使用UserControl的方法参考这篇文章:
http://www.cnblogs.com/shuang121/archive/2013/01/09/2853591.html
前台布局:
说明:这里用的是Border边框控件,由于该控件只能有一个Content,所以为了同时包含Popup及其在边框中显示的文字TextBlock,采用了一个Grid来包裹。
后台对于Popup控件的操作只有鼠标移入事件:
说明:为何要先IsOpen = false再IsOpen = false,下边有解释。
http://bbs.csdn.net/topics/390770640
摘录一下大神的原话:
“在其他地方点击之后,pop1并不是自动关闭了,而是跑到其他控件后面去了
所以你再让它打开,它其实已经是打开的,而且已经在后面,所以看不到了.
你先让它关闭,再打开,就又跑到前面来了.”
效果如下图:
当鼠标移入左上角的【多选显示】框内,出现下面的浮窗(悬浮在原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,下边有解释。
http://bbs.csdn.net/topics/390770640
摘录一下大神的原话:
“在其他地方点击之后,pop1并不是自动关闭了,而是跑到其他控件后面去了
所以你再让它打开,它其实已经是打开的,而且已经在后面,所以看不到了.
你先让它关闭,再打开,就又跑到前面来了.”
相关文章推荐
- WPF中使用Popup控件
- c#,使用WPF的Adorner实现iPhone上新邮件或消息提示效果----实现(二)
- c#,使用WPF的Adorner实现iPhone上新邮件或消息提示效果----实现(一)
- WPF的TChart控件使用---添加直线---标题勾选---提示
- c#,使用WPF的Adorner实现iPhone上新邮件或消息提示效果----实现(一)
- c#,使用WPF的Adorner实现iPhone上新邮件或消息提示效果----实现(二)
- Powershell使用WPF技术实现弹窗提示实例
- 使用MS的Ent Lib(企业库)开发时,提示“System.Security.SecurityException: 不允许所请求的注册表访问权”--转载自蝈蝈俊
- 使用Visual Studio .NET编写纯C程序的提示
- 使用MSAgent代替传统的MessageBox提示来增用客户端用户体验
- 系统提示:‘状态:驱动程序已启用但尚未开始使用’
- JavaScript实际应用:innerHTMl和确认提示的使用
- windows server 2003 出错提示"请求的资源在使用中"解决方案
- 优化PL/SQL过程调用,使用NOCOPY提示
- 在win命令行模式下,使用快速提示
- 在SQL语句中使用索引提示提高SQL性能
- 初学AJAX遇到的的问题:使用javascript代码调用服务端代码时提示'WebForm1'未定义
- 层的使用:页面载入时提示消息层
- 使用datalist删除前提示,要求用户确认是否删除的做法
- 对不支持CSS浏览器,如何获得提示信息,使用灵活的ALT属性