当前位置: 首页 > news >正文

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控件身边。

相关文章:

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

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

【mysql 第一篇章】系统和数据库的交互方法

一、宏观的查看系统怎么和数据库交互 在我们刚刚接触系统和数据库的时候不明白其中的原理&#xff0c;只知道系统和数据库是需要交互的。所以我们会理解成上图的形式。 二、MYSQL 驱动 随着我们的学习时间的加长以及对程序的了解&#xff0c;发现链接数据库是需要有别的工具辅…...

数据结构-位运算总结

位运算总结&#xff1a; 1.求位1的个数 191. 位1的个数 - 力扣&#xff08;LeetCode&#xff09; 有两种写法&#xff1a; 1.是把该数不断的去与0x1相与&#xff0c;得到该数的最后一位的值&#xff0c;然后判断他是不是1&#xff0c;再把该数更新一下整体往后移动一位也就…...

java 异常堆栈的由来

编写的程序代码内部错误产生的异常&#xff0c;如调用对象为空(空指针异常)、数组越界异常、除0异常等。这种通常称为未检查的异常&#xff08;Runtime异常子类&#xff09;&#xff0c;在虚拟机中执行时会集中处理这些异常。其他运行中异常&#xff0c;通过throw语句主动抛出的…...

【推荐系统】【多任务学习】Progressive Layered Extraction (PLE)

Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations 文章目录 Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations1 论文出处2 背景2.1 背景介…...

java -转win32/win64免安装jre环境运行

由于java 转为exe&#xff0c;只能在装有JDK环境的电脑运行&#xff0c; 发给其他人也不能运行&#xff0c;缺少环境&#xff0c;程序自己背着jre走 1.先打好jar 包 2.使用exe4j 把jar包转成exe 运行程序 3.使用inno stup &#xff0c;把exe运行程序加上jre环境 以下是具体实现…...

算法板子:容斥原理——求出 1∼n 中能被质数 p1,p2,…,pm 中的至少一个数整除的整数有多少个

1. 题目要点 1. 设&#xff1a;求1~10中能被质数2和3中至少一个数整除的数有多少个。1~10中能被质数2整除的数的集合记为S1{2,4,6,8,10}&#xff0c;能被质数3整除的数的集合记为S2{3,6,9}&#xff0c;能同时被质数2和3整数的数的集合为S1∩S2{6} 2. 这道题的目的是求S1∪S2∪S…...

用gurobipy求解带不等式约束条件的优化问题

1. 引入 在当今的数据驱动世界中&#xff0c;优化问题无处不在&#xff0c;从工程设计到经济模型&#xff0c;再到机器学习算法的调参&#xff0c;优化都是实现效率最大化、成本最小化或性能最优化的关键工具。 这里有一个典型的数学优化问题&#xff0c;目标是在给定的约束条…...

漏洞复现-Adobe ColdFusion 远程代码执行漏洞(CVE-2023-38203)

1.漏洞描述 Adobe ColdFusion是一种服务器端的Web应用开发平台。它由Adobe Systems开发&#xff0c;用于创建动态的、交互式的Web应用程序和网站。 Adobe ColdFusion在2018u17及之前版本、2021u7及之前版本和2023u1及之前版本中存在任意代码执行漏洞。该漏洞是由于反序列化不…...

Spring-MyBatis整合:No qualifying bean of type ‘XXX‘ available: ...

1.看一下核心配置中有没有导入myBatis配置 2.看一下service和dao有没有相应注解 3.看一下MyBatisConfig中有没有对sqlSessionFactory和mapperScannerConfigurer注释成bean对象以及有没有配置映射文件路径...

gitea docker 快捷安装部署

前言 在前一篇博文&#xff08;什么是 Gitea&#xff1f;&#xff09;中&#xff0c;我们详细介绍了gitea的功能特性&#xff0c;以及其与其它git服务器之间的特性多维度对比。 在本文中&#xff0c;我们将详细介绍gitea的快捷安装部署&#xff0c;docker方式&#xff01; 1…...

CLAMP-1

一、信息收集 1、主机发现 nmap 192.168.236.0/24 2、端口扫描 nmap 192.168.236.173 -p- -A 3、目录扫描 dirb http://192.168.236.173 二、漏洞探测 访问80端口 访问 /nt4stopc/ 下面有一些问题&#xff0c;提示必须收集答案 都是一些判断题&#xff0c;对与错对应1与0&…...

Blender的Python编程介绍

在Blender这个免费的开源3D设计软件中&#xff0c;最值得称道的一点是可以用Python程序来辅助进行3D设计&#xff0c;我们可以通过Python来调整物体的属性&#xff0c;生成新的物体&#xff0c;甚至生成新的动画等等。 在最近的一个项目中&#xff0c;我用Blender制作了一个动…...

树莓派4/5:运行Yolov5n模型(文末附镜像文件)

〇、前言 因国内网络问题&#xff0c;可直接烧录文末镜像文件&#xff0c;或者按照本教程进行手动操作。 一、实验目的 在树莓派4B运行Yolov5n模型。 二、实验条件 1、Windows 11计算机&#xff1a;安装了Mobaxterm 2、树莓派4B&#xff1a;64Bit Lite OS&#xff0c;安装了…...

【学习笔记】Day 9

一、进度概述 1、inversionnet_train 试运行——成功 二、详情 1、inversionnet_train 试运行 在经历了昨天的事故后&#xff0c;今天最终成功运行了 inversionnet_train&#xff0c;运行结果如下&#xff1a; 经观察&#xff0c;最开始 loss 值大概为 0.5 左右 随着训练量的增…...

Linux网络案例

网络配置基础 WIN10上安装虚拟机&#xff0c;虚拟机里安装CENTOS6.5。 1&#xff09;网络配置的步骤 &#xff08;1&#xff09;CENTOS6.5C网络设置: su root //切换root用户 cd /etc/sysconfig/network-scripts //进入网卡配置文件所在目录 vi ifcfg-eth0 //修改网卡配置文件 …...

苹果离线打包机配置和打包

1、虚拟机安装 macOS虚拟机安装全过程&#xff08;VMware&#xff09;-腾讯云开发者社区-腾讯云 给 windows 虚拟机装个 mac 雪之梦 1、安装苹果镜像 去网上下载&#xff0c;打包机的镜像要和自己mac电脑上的保持一致。 同时打包机的用户名也需要和自己的mac保持一致。 2、…...

【C++ Primer Plus】学习笔记 5【指针 下】

文章目录 前言一、指针1.使用new创建动态结构例子&#xff1a;使用new和delete 2.自动存储、静态存储和动态存储1.自动存储2.静态存储3.动态存储 总结 前言 依旧是指针部分ヾ(◍∇◍)&#xff89;&#xff9e; 一、指针 1.使用new创建动态结构 将new用于结构由两步组成:创建…...

Phpstorm实现本地SSH开发远程机器(或虚拟机)项目

适用场景&#xff1a; 1、windows系统想要运行仅支持linux、mac系统的项目&#xff0c;可将项目运行在本地虚拟机&#xff0c;但是在虚拟机里使用vim编辑很麻烦&#xff0c;如何实现在本地用Phpstorm来编辑虚拟机中的代码&#xff1f; 下面的说明都是以本地虚拟机为例&#xff…...

API 的多分支管理,让 Apifox 帮你轻松搞定!

在产品迭代的过程中&#xff0c;对 API 的更新和维护是必然的&#xff0c;也是至关重要的。当产品需要引入新功能或对现有功能进行调整时&#xff0c;相应的 API 往往也需要进行升级或修改&#xff0c;这种情况在快速迭代的产品中很是常见。 然而&#xff0c;API 的迭代更新并非…...

线上预约陪诊平台医院陪诊系统源码就医陪护小程序APP开发

项目分析 随着医疗行业的数字化转型和人们对健康需求的日益增长&#xff0c;线上预约陪诊系统作为一种新兴的医疗服务模式&#xff0c;正逐渐受到市场的关注和认可。本文将从市场前景、使用人群、盈利模式以及竞品分析等多个角度&#xff0c;全面探讨线上预约陪诊系统的技术性…...

240806-在Linux/RHEL开机中自动启动bash脚本

A. 常规方法 要在Red Hat Enterprise Linux (RHEL) 中设置开机启动的bash脚本&#xff0c;可以使用以下方法之一&#xff1a; 方法1&#xff1a;使用/etc/rc.d/rc.local 打开/etc/rc.d/rc.local文件&#xff1a; sudo vi /etc/rc.d/rc.local在文件末尾添加你想要执行的bash脚…...

【多线程】乐观/悲观锁、重量级/轻量级锁、挂起等待/自旋锁、公平/非公锁、可重入/不可重入锁、读写锁

文章目录 乐观锁和悲观锁重量级锁和轻量级锁挂起等待锁和自旋锁公平锁和非公平锁可重入锁和不可重入锁读写锁相关面试题 锁&#xff1a;非常广义的概念&#xff0c;不是指某个具体的锁&#xff0c;所有的锁都可以往这些策略中套 synchronized&#xff1a;只是市面上五花八门的锁…...

31_逻辑漏洞、水平垂直越权、垂直越权漏洞测试、水平越权

概述 如果使用A用户的权限去操作B用户的数据&#xff0c;A的权限小于B的权限&#xff0c;如果能够成功操作&#xff0c;则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。 一般越权漏洞容易出现在权限页面&#xff08;需要登录的页面&#xff0…...

css写一个按钮流光动画效果

规则说明 按钮实现一个简易的流光动画 streamer.css.pay_button{width: 281*2px;height: 104px;border-radius: 80px;color: rgba(255, 255, 255, 1);background: linear-gradient(90deg, #FFA023 0%, #FF2B87 100%);margin-bottom: 20px;font-size: 32px;position: relative;o…...

AxMath保姆级安装教程(word联用)及使用TIPS

一、软件介绍 AxMath是一款数学公式编辑器软件。它提供了一个直观的界面&#xff0c;使用户可以轻松创建和编辑数学公式。AxMath支持多种数学符号、方程式、函数、矩阵等的输入和编辑&#xff0c;并提供了丰富的数学符号库和模板&#xff0c;方便用户快速创建复杂的数学公式。…...

Vue-03.指令-v-on

v-on 为HTML标签绑定事件 代码演示&#xff1a; 在下面的代码中&#xff0c;在input标签中定义了一个按钮&#xff0c;并且使用v-on为input标签绑定了一个事件click&#xff0c;当鼠标点击该按钮时&#xff0c;会触发指定的方法handle&#xff0c;如果…...

接口基础知识6:详解http request body(一篇讲完常见请求体)

课程大纲 一、定义 HTTP请求体&#xff08;HTTP Request body&#xff09;&#xff1a;HTTP请求消息的可选部分&#xff0c;仅在请求方法支持且需要发送数据时使用。 POST方法、PUT方法有请求体&#xff0c;GET和HEAD方法没有请求体。 请求头和请求体之间会有一个空行&#…...

Windows Server 安装Web,DHCP,DNS,FTP四大服务及其配置和监控方式

以Windows Server 2022为例 1.安装Web服务 添加角色->Web服务器勾选 添加Web服务器后会有一个interpub文件夹&#xff0c;其中wwwroot为网站根目录 工具->IIS->网站 ,这里可以将风险服务停掉 2.安装DHCP服务 添加角色->DHCP服务器勾选 右击IPv4->新建作用域 …...

创意指南丨VR游览沉浸式空间体验

欢迎来到我们制作的VR幻想世界。玩家的起点是一条蓝色水晶大道&#xff0c;让我们一起探索这个如梦似幻的境地。 在这条大道的两侧&#xff0c;漂浮着半透明的大水晶水母。它们轻盈地在空中飘动&#xff0c;仿佛在欢迎我们的到来。这条道路上方&#xff0c;一个个半圆环不停地…...