WPF popup自动关闭
- var tileMore = new Tile
- {
- Height = ,
- Width = ,
- Background = new SolidColorBrush(Color.FromRgb(, , )),
- Title = "更多...",
- };
- tileMore.SetResourceReference(FrameworkElement.StyleProperty, "KentTile");
- Popup popup = new Popup
- {
- //StaysOpen = false,
- PopupAnimation = PopupAnimation.Slide,
- PlacementTarget = tileMore,
- Placement = PlacementMode.Bottom,
- AllowsTransparency = true
- };
- //pop里面生成的内容,本例是StackPannel中包括一个textbox
- WrapPanel stackPanel = new WrapPanel
- {
- Width = tileMore.Width * ,
- Background = Brushes.Transparent
- };
- stackPanel.Children.Add(/*sth to show*/);
- popup.Child = stackPanel;
- tileMore.MouseEnter += (sender, e) =>
- {
- popup.IsOpen = true;
- };
- tileMore.MouseLeave += (s, e) =>
- {
- if (timerCloseRecentPopup == null)
- {
- timerCloseRecentPopup = new DispatcherTimer();
- timerCloseRecentPopup.Interval = new TimeSpan(, , );
- timerCloseRecentPopup.Tag = popup;
- timerCloseRecentPopup.Tick += closePopup;
- }
- timerCloseRecentPopup.Stop();
- timerCloseRecentPopup.Start();
- };
- popup.MouseLeave += (s, e) =>
- {
- if(timerCloseRecentPopup == null)
- {
- timerCloseRecentPopup = new DispatcherTimer();
- timerCloseRecentPopup.Interval = new TimeSpan(, , );
- timerCloseRecentPopup.Tag = popup;
- timerCloseRecentPopup.Tick += closePopup;
- }
- timerCloseRecentPopup.Stop();
- timerCloseRecentPopup.Start();
- };
- /// <summary>
- /// 定时关闭 更多 popup窗口
- /// </summary>
- private DispatcherTimer timerCloseRecentPopup;
- private void closePopup(object state,EventArgs e)
- {
- Popup pop = timerCloseRecentPopup.Tag as Popup;
- if(pop == null)
- {
- //todo timer里面的Assert没有对话框出来
- Debug.Assert(true,"pop==null");
- return;
- }
- Tile tileMore = pop.PlacementTarget as Tile;
- if (!pop.IsMouseOver )
- {
- if(tileMore != null)
- {
- if(!tileMore.IsMouseOver)
- {
- pop.IsOpen = false;
- timerCloseRecentPopup.Stop();
- }
- }
- else
- {
- pop.IsOpen = false;
- timerCloseRecentPopup.Stop();
- }
- }
- }
WPF popup自动关闭的更多相关文章
- WPF Popup 控件导致被遮挡内容不刷新的原因
WPF Popup 控件导致被遮挡内容不刷新的原因 周银辉 今天在写一个WPF控件时用到了Popup控件,很郁闷的情况是:当popup关闭时,原来被popup挡住的界面部分不刷新,非要手动刷新一下(比 ...
- WPF Popup 置顶问题
原文 WPF Popup 置顶问题 问题: 使用wpf的popup,当在popup中弹出MessageBox或者打开对话框的时候,popup总是置顶,并遮住MessageBox或对话框. 解决: 写如 ...
- WPF Popup全屏 弹出方法。解决只显示75%的问题。
WPF Popup全屏 弹出方法.解决只显示75%的问题. WPF 中 Popup 有一个特点.当Popup的高度超过屏幕的75%的时候,只显示75%的高度. 如下代码: <Window x ...
- 自定义WPF Popup控件
解决问题 1.WPF Popup 不随着 Window 一起移动的问题 2.WPF Popup 总是显示在最前面 引用命名空间 xmlns:ctrl="clr-namespace:Micro ...
- wpf Popup Win8.0 bug HorizontalOffset 弹出位置偏移
问题描述参考 wpf 客户端[JDAgent桌面助手]开发详解(四) popup控件的win8.0的bug 当开发完程序后,我们在多操作系统测试时候发现:win8.0 系统中 popup 弹出的位置 ...
- WPF popup被截断的原因和修改方法
原因:wpf里 popup不能超过屏幕75%的面积,不知道为什么要这么设置? 修改方法: private void SetPopupScreen() { Rect rtWnd = , , gridMa ...
- WPF Popup 右下角提示框 定时消失 ,以及任意位置定位
------------恢复内容开始------------ 好久没写WPF的博客了,其实有很多心得要总结下,但是懒..... 今天工作需要,需要实现一个 1 右下角的提示窗口,然后过三五秒自动消失这 ...
- WPF popup置顶
在程序写一个popup发现他会在置顶,在网上找了两大神代码http://www.cnblogs.com/Leaco/p/3164394.html http://blog.csdn.net/baijin ...
- WPF popup控件的使用
<Window x:Class="WPFPopup.RuntimePopup" xmlns="http://schemas.microsoft.com/wi ...
随机推荐
- LINUX内核PCI扫描过程
LINUX内核PCI扫描过程 内核版本 3.10.103 1. ACPI热插拔扫描subsys_initcall(acpi_init)@drivers/acpi/bus.c |-acpi_scan_i ...
- 【二分查找】 跳石头NOIP2015提高组 D2T1
[二分查找]跳石头NOIP2015提高组 D2T1 >>>>题目 [题目描述] 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石 ...
- 【网址】ILSpy,C# .net/dot net的反编译工具
ILSpy官网:http://ilspy.net/ ILSpy中文版:http://www.fishlee.net/soft/ilspy_chs/
- Win10 禁止自动更新以及禁止Windows 10升级助手(Windows 10 易升)
微软目前已经重新启用非常烦人的Windows 10升级助手,现在该助手主要帮助用户自动下载以及安装更新. 彻底禁用: 1.在开始菜单右侧的搜索框中输入关键词控制面板,然后打开控制面板后转到程序与功能里 ...
- struts标签怎么判断request里的属性是否为空 <s:if test="${list==null}"> </s:if>
<s:if test="${weigou}==999"> //错误的 ${list==null} ,$实在strtus的配置文件中取值用的,不是在jsp页面里取值的的吧 ...
- PDF 补丁丁 0.6.0.3340 版发布(修复提取图片的问题)
新的版本修复了两个导致提取图片颜色异常的问题.
- PL/SQL Developer如何导出数据成sql的insert语句
1.选择菜单 , [工具]-[导出表] 2.选择tab标签页的,[SQL插入] 注意where条件语句,注意要选择相应的表 3.选择输出
- JS-圣杯模式
var inherit = (function(){ var F = function(){}; return function(Target,Origin){ F.prototype = Origi ...
- saltstack高效运维
saltstack高效运维 salt介绍 saltstack是由thomas Hatch于2011年创建的一个开源项目,设计初衷是为了实现一个快速的远程执行系统. salt强大吗 系统管理员日常会 ...
- C++11 相关教程
C++11 中文wiki: https://zh.wikipedia.org/zh-cn/C%2B%2B11 C++11 新特性介绍: https://www.kancloud.cn/wangshub ...