【WPF】使用Popup控件做浮窗/提示框
WPF 控件 提示框 Popup 使用
2023-09-11 14:22:26 时间
需求:当鼠标移入某个区域时,弹出一个浮窗,以便用户进行下一步操作。
效果如下图:
当鼠标移入左上角的【多选显示】框内,出现下面的浮窗(悬浮在原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入门教程系列二十——ListView示例(二)
- View Models - WPF MVVM TUTORIAL #3
- .NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了 [WPF]为旧版本的应用添加触控支持 js css等静态文件版本控制,一处配置多处更新.net版【原创】 C#图片处理,缩略图制作 SqlDataReader 结果集 转成 DataTable DataTable转成List集合 如何使用linq读取DataTable集合?
- 反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑) C#中缓存的使用 C#操作redis WPF 控件库——可拖动选项卡的TabControl 【Bootstrap系列】详解Bootstrap-table AutoFac event 和delegate的分别 常见的异步方式async 和 await C# Task用法 c#源码的执行过程
- WPF MVVM UI分离之《交互与数据分离》 基础才是重中之重~delegate里的Invoke和BeginInvoke 将不确定变为确定系列~目录(“机器最能证明一切”) 爱上MVC3系列~全局异常处理与异常日志 基础才是重中之重~lock和monitor的区别 将不确定变成确定~我想监视我的对象,如果是某个值,就叫另一些方法自动运行 将不确定变成确定~LINQ DBML模型可以对
- WPF 流文档
- [WPF] 在 ViewModel 中让数据验证出错(Validation.HasError)的控件获得焦点
- [WPF 自定义控件]关于ScrollViewer和滚动轮劫持(scroll-wheel-hijack)
- [WPF 自定义控件]使用TextBlockHighlightSource强化高亮的功能,以及使用TypeConverter简化调用
- [WPF 自定义控件]使用WindowChrome自定义RibbonWindow
- [WPF 自定义控件]Window(窗体)的UI元素及行为
- [WPF 自定义控件]让Form在加载后自动获得焦点
- [WPF 自定义控件]以Button为例谈谈如何模仿Aero2主题
- [WPF 自定义控件]自定义控件的代码如何与ControlTemplate交互
- [WPF]本地化入门
- WPF不同线程之间的控件的访问
- WPF整理-使用用户选择主题的颜色和字体
- WPF整理-为控件添加自定义附加属性
- WPF中iconfont图标库的使用
- WPF列表控件第一行子项样式无效问题
- wpf msdn在线地址http://msdn.microsoft.com/zh-cn/library/ms752324(v=vs.110).aspx
- WPF之Binding深入探讨
- 【WPF】使用控件MediaElement播放视频
- 【WPF】对话框/消息弹窗
- 【WPF】C#代码动态改变控件的样式
- 【C#/WPF】Bitmap、BitmapImage、ImageSource 、byte[]转换问题
- 【WPF】C#代码动态添加控件的Margin属性
- 【WPF】XAML引入资源和在C#代码中动态添加样式
- 【WPF】给UserControl引入多个资源
- 【WPF】设置TextBox内容为空时的提示文字