WPF篇(11)-ToolTip控件(提示工具)+Popup弹出窗口

ToolTip控件

ToolTip控件继承于ContentControl,它不能有逻辑或视觉父级,意思是说它不能以控件的形式实例化,它必须依附于某个控件。因为它的功能被设计成提示信息,当鼠标移动到某个控件上方时,悬停一会儿,就会显示这个ToolTip的内容。

通常ToolTip会显示一句话,用来阐述某个控件的说明。这个控件存在于FrameworkElement基类中,也就是ToolTip属性,这个属性在FrameworkElement虽然被声明成object,而不是ToolTip类型,但是,我们仍然可以自定义ToolTip的内容。重点:WPF几乎所有控件都可以拥有ToolTip小型提示弹窗!

因为ToolTip继承于ContentControl控件,所以,ToolTip拥有的Content属性就可以显示任何类型,比如字符串、图像、其它控件组合布局。

简单使用

<Button Content="确定" ToolTip="ToolTip控件"/>

自定义ToolTip内容

前端代码

        <Button x:Name="button2" Content="百度一下" Width="100" Height="30" Margin="5" Click="button2_Click"><Button.ToolTip><StackPanel><TextBlock Text="官方网站" FontWeight="Bold" /><TextBlock Text="点击这个按钮,进入百度首页"/><Border BorderBrush="Silver" BorderThickness="0,1,0,0" Margin="0,4"/><TextBlock Text="http://www.baidu.com" Foreground="Blue" FontStyle="Italic"/></StackPanel></Button.ToolTip></Button>

后端代码

        private void button2_Click(object sender, RoutedEventArgs e){Process.Start("http://www.baidu.com");}

在这里插入图片描述

注意:

  • 虽然ToolTip可以自定义内容,但是,ToolTip的内容无法接收焦点。

  • 与ToolTip有点类似的控件,还有一个叫Popup控件,也是一个弹出窗口,并可以在这个窗口内任意布局。后面我们会学到。

Popup弹出窗口

Popup类似于ToolTip,在指定的元素或窗体中弹出一个具有任意内容的窗口。

属性成员

  • HasDropShadow:只读属性,控件是否有投影效果。
  • AllowsTransparency:获取或设置控件是否包含透明内容。
  • PopupAnimation:获取或设置控件打开或关闭时的动画效果,None表示没有动画,Fade表示逐渐显示或淡出,Slide表示向上向下滑入,Scroll表示滚动效果。
  • PlacementRectangle :获取或设置控件打开时的矩形位置 。
  • PlacementTarget: 获取或设置Popup控件在哪个控件身边打开(重点)。
  • VerticalOffset :获取或设置目标原点和 popup 对齐点之间的垂直距离。
  • HorizontalOffset :获取或设置目标原点和弹出项对齐之间的水平距离点。
  • StaysOpen :默认值为true,表示Popup打开后,如果失去焦点,Popup是否继续显示(重点)。
  • Child :获取或设置控件的内容,类似于ContentControl的Content属性,只能拥有一个元素(重点)。
  • IsOpen :获取或设置Popup控件是否可见。
  • Placement :枚举类,表示Popup 控件显示时的对齐方式。

事件成员

  • Opened事件:Popup控件打开时引发的事件。

  • Closed事件:Popup控件关闭时引发的事件。

案例

<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"><CheckBox x:Name="checkbox" Content="百度一下" Height="30" Margin="5" ToolTip="百度一下,你就知道"/><Popup Name="myPopup" IsOpen="{Binding IsChecked, ElementName=checkbox}" PlacementTarget="{Binding ElementName=checkbox}" StaysOpen="True"><Border BorderThickness="1" Background="LightBlue"><StackPanel><TextBlock Text="官方网站" FontWeight="Bold" /><TextBlock Text="点击这个按钮,进入百度首页"/><Border BorderBrush="Silver" BorderThickness="0,1,0,0" Margin="0,4"/><TextBlock Text="http://www.baidu.com" FontStyle="Italic"/></StackPanel></Border></Popup></StackPanel>

在这里插入图片描述

我们分别实例化了名叫checkbox和myPopup控件,myPopup的IsOpen属性绑定了checkbox的IsChecked,意思是, 当用户点击checkbox时,checkbox的IsChecked属性为true,myPopup的IsOpen属性也为true,于是就可以显示myPopup的内容了。

同时,myPopup的PlacementTarget属性也绑定到了checkbox控件,意味着myPopup将显示在checkbox控件身边。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/399826.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++ 面试 - 基础题】每日 3 题(十一)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

解决浏览器书签同步问题,极空间部署开源免费的跨平台书签同步工具『xBrowserSync』

解决浏览器书签同步问题&#xff0c;极空间部署开源免费的跨平台书签同步工具『xBrowserSync』 哈喽小伙伴们好&#xff0c;我是Stark-C~ 作为一个喜欢折腾的数码党&#xff0c;我平时上网冲浪使用的浏览器绝不会只限于一种&#xff0c;就比如说我在上班的地方只会用到Edge浏…

安科瑞Acrel-2000ES储能能量管理系统在新型电力系统下分布式储能的研究

摘要&#xff1a;传统电力系统的结构和运行模式在以新能源为主体的新型电力系统中发生了巨大的变化&#xff0c;分布式储能作为电力系统中重要的能量调节器&#xff0c;也迎来了新的发展机遇。立足于储能技术发展现状&#xff0c;分析了分布式储能技术特点及在清洁可再生能源方…

priority_queue的介绍 仿函数

1.priority_queue的介绍 1.优先队列是⼀种容器适配器&#xff0c;根据严格的弱排序标准&#xff0c;它的第⼀个元素总是它所包含的元素中最⼤的。 2.此上下⽂类似于堆&#xff0c;在堆中可以随时插⼊元素&#xff0c;并且只能检索最⼤堆元素&#xff08;优先队列中位于顶部的元…

接口自动化--Postman(1)

Postman介绍 介绍&#xff1a;Postman是一款接口调试工具特点&#xff1a;支持Mac、Windows和Linux下载&#xff1a;Postman官网下载 【黑马客达天下-登录接口调试】 1、获取验证码 需求&#xff1a;使用Postman访问验证码接口&#xff0c;并查看响应结果地址&#xff1a;h…

北斗三号5G遥测终端机系统在水库大坝安全监测应用

一、概述 我国现有水库大坝9.8万余座&#xff0c;是世界上拥有水库大坝最多的国家。这些水库大坝在防洪、发电、供水、灌溉等方面发挥巨大效益的同时&#xff0c;所存在的安全风险不容忽视。大坝安全监测是大坝安全管理的重要内容&#xff0c;是控制大坝风险的重要措施。大坝安…

Spring入门讲解

这里写目录标题 Spring基础概念关键重点主要特性主要优势Spring与Java EE的对比Spring生态系统概述总结 Spring 基础概念 Spring是一个开源的轻量级Java开发框架&#xff0c;它提供了全面的基础设施支持&#xff0c;简化了企业级应用的开发和部署。Spring的核心理念是依赖注入…

Stable Diffusion 必备插件推荐,菜鸟轻松成高手!

前言 一个刚学AI绘画的小菜鸟如何快速成为Stable Diffusion高手&#xff1f;答案就是SD插件。 只要学会使用SD的各种插件&#xff0c;帮你写正向和负向提示词&#xff0c;修复人脸/身体/手指&#xff0c;高清放大图片&#xff0c;指定人物pose&#xff0c;图片微调等等都可以…

合合信息OCR支持30类国内常见票据一站式分类识别,支持医疗发票、数电票识别

合合信息TextIn平台明星产品——国内通用票据识别&#xff0c;重磅更新&#xff01; 产品支持票据类型扩展到23大类、30小类&#xff0c;覆盖场景更全面&#xff0c;同时升级优化了多款票据识别模型&#xff0c;平均识别率较前版本提升11.5%&#xff0c;整体识别速度提升21.9%…

手写mybatis拦截器自动填充数据

文章目录 &#x1f31e; Sun Frame&#xff1a;SpringBoot 的轻量级开发框架&#xff08;个人开源项目推荐&#xff09;&#x1f31f; 亮点功能&#x1f4e6; spring cloud模块概览常用工具 &#x1f517; 更多信息1.将sun-club-subject模块的登录拦截器放到sun-club-common包中…

Prometheus+Grafana保姆笔记(1)——Prometheus+Grafana的安装

Prometheus Grafana 的组合在微服务项目中可以完成许多DevOps任务&#xff0c;它们共同提供了强大的监控和可视化功能。 我们陆续介绍Prometheus Grafana 的相关用法。 首先介绍PrometheusGrafana的安装。 安装 Prometheus Prometheus 是GO写的&#xff0c;并不依赖于 Ja…

HIT CSAPP——程序人生-Hello’s P2P

本文链接&#xff1a;https://blog.csdn.net/QingFeng_0813/article/details/139468749?spm1001.2014.3001.5502 计算机系统 大作业 题 目 程序人生-Hello’s P2P 专 业 医学与健康学院 学   号 2022110762 班 级 2252003 …

(回溯) LeetCode 47. 全排列||

原题链接 建议先练习&#xff1a;全排列| 一. 题目描述 给定一个可包含重复数字的序列 nums &#xff0c;按任意顺序 返回所有不重复的全排列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,2] 输出&#xff1a; [[1,1,2],[1,2,1],[2,1,1]]示例 2&#xff1a; 输入&a…

Java流程控制01:用户交互Scanner

本节教学视频链接&#xff1a;https://www.bilibili.com/video/BV12J41137hu?p33&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5https://www.bilibili.com/video/BV12J41137hu?p33&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 Scanner 类用于扫描输入文本从字符串中提…

Bug 解决 | 组件库报错、或样式丢失不生效

目录 一、前言 二、版本问题 1、使用 VantUI 的 toast 组件报错&#xff1f; 2、引入 VantUI 组件库后&#xff0c;toast 组件样式丢失了&#xff1f; 3、使用 Ant Design Vue 组件库&#xff0c;启动后显示 antd.css 不存在&#xff1f; 4、Vant UI 组件库引入的 tabs 组…

数据中心安全建设整体解决方案(DOC原件22页)

数据中心的安全体系建设并非安全产品的堆砌&#xff0c;它是一个根据用户具体业务环境、使用习惯、安全策略要求等多个方面构建的一套生态体系&#xff0c;涉及众多的安全技术&#xff0c;实施过程需要涉及大量的调研、咨询等工作&#xff0c;还会涉及到众多的安全厂家之间的协…

LangChain 推出 LangGraph Studio:首款用于可视化、交互和调试复杂代理应用的代理 IDE

嘿&#xff0c;听说了吗&#xff1f;Langchain最近发布了一项重大更新&#xff0c;他们推出了官方Agent IDE&#xff0c;并且免费开放了LangGraph平台。这对于AI开发者来说是个好消息&#xff0c;意味着我们现在有了更强大的工具来构建智能应用。 今天&#xff0c;我们就来分享…

编译自定义Linux内核,使WSL支持访问Windows下USB设备

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ WSL 本身并不支持连接 USB 设备&#xff0c;因此你需要安装开源 usbipd-win 项目。 usbip 可以让你在网络上共享和使用 USB 设备。它由两个主要组件组成&…

一个Indie Hacker的微SaaS技术栈

如今&#xff0c;可用的技术非常多&#xff0c;我们每个月都会看到各种新的 JS 框架发布&#xff0c;有时&#xff0c;如果你一开始没有选择正确的技术堆栈&#xff0c;以后扩展起来就会很困难。因此&#xff0c;在今天的文章中&#xff0c;我将与你分享我用于开发微型 SaaS 的…

分布式存储ceph知识点整理

一、Ceph概述 如何选择存储 底层协议兼容性产品要有定位&#xff0c;功能有所取舍针对特定市场的应用存储被市场认可的存储系统 稳定性是第一位的性能第二数据功能要够用 一&#xff09;存储分类 1、本地存储 本地的文件系统&#xff0c;不能在网络上用。 如&#xff1a;ext3、…