需求

自己绘制的UI,检测鼠标位置,适时显示出 ToolTip

1 WinForm 的 ToolTip


// Member define:
private ToolTip _toolTip = new ToolTip(new Container()); // constructor: initialize
this._toolTip.AutoPopDelay = 100;
this._toolTip.ShowAlways = true; // MouseMove Event: logic-process
// On some condition:
this._toolTip.ToolTipTitle = "Title Of ToolTip";
this._toolTip.SetToolTip("Content String Here!");

一个ShowAlways属性就可以了。  

逻辑就放在MouseMove中实时判断,

符合条件就调用最后那两句。

(当然,按需改成动态数据)

2 WPF 的 ToolTip

检索了一圈没有特别好的解决办法,总是出现问题

那样的话需要单独设一些样式。

还是用回ToolTip再尝试解决一下。相信多试试办法总会有的。


XAML文件:

    <Canvas ToolTipService.ShowDuration="0" ToolTipService.InitialShowDelay="0" ToolTipService.BetweenShowDelay="0" MouseMove="MainCanvas_MouseMove">
<Canvas.ToolTip>
<ToolTip x:Name="tip" PlacementTarget="{Binding ElementName=MainCanvas}" Content="A tooltip!" Visibility="Collapsed"></ToolTip>
</Canvas.ToolTip>
</Canvas>

ToolTipService.ShowDuration="0"

让首次显示时长为0,就解决了这个问题。

配合手动控制ToolTipVisibility属性。

后台代码:

                // Position:
tip.Placement = System.Windows.Controls.Primitives.PlacementMode.Relative;
tip.HorizontalOffset = e.GetPosition((IInputElement)sender).X + 10;
tip.VerticalOffset = e.GetPosition((IInputElement)sender).Y + 10; // logic for Show/Hide:
tip.Visibility = showTip ? Visibility.Visible : Visibility.Collapsed; // Be open constantly while mouse-moving:
tip.IsOpen = true;

[C#] 使 ToolTip 一直显示 (在 WinForm 与 WPF 中的差异解决方案)的更多相关文章

  1. 在Winform或WPF中System.Diagnostics.Process.Start的妙用

    原文:在Winform或WPF中System.Diagnostics.Process.Start的妙用 我们经常会遇到在Winform或是WPF中点击链接或按钮打开某个指定的网址, 或者是需要打开电脑 ...

  2. GMap.Net开发之在WinForm和WPF中使用GMap.Net地图插件

    GMap.NET是什么? 来看看它的官方说明:GMap.NET is great and Powerful, Free, cross platform, open source .NET contro ...

  3. GMap.Net解决方案之在WinForm和WPF中使用GMap.Net地图插件的开发

    在做地理位置相关的开发时,总是面临高额地图引擎费用让大部分用户望而却步,加之地图数据又是天价,那么GMap.NET就是首选了,它本身就是开源免费,服务器可以在本地缓存,以后访问时就可以直接访问. 可以 ...

  4. WinForm和WPF中注册热键

    由于.Net没有提供专门的类库处理热键,所以需要直接调用windows API来解决. HotKey为.NET调用Windows API的封装代码,主要是RegisterHotKey和Unregist ...

  5. C# 在winform或者wpf中显示控制台窗口

    这儿需要使用两个系统函数: BOOL WINAPI FreeConsole(void); //// 关闭控制台窗口,参考:http://msdn.microsoft.com/en-us/library ...

  6. 基于Winform、WPF等的客户端文件下载

    有时候,我们用C#写一些客户端应用程序需要从服务器下载一些资源,如图片.dll.配置文件等.下面就来说一下,在Winform及WPF中如何下载文件. 我们的资源大多放在自己的网站上,或者从其他网站下载 ...

  7. winform,wpf全屏 还显示任务栏的解决方法

    原文:winform,wpf全屏 还显示任务栏的解决方法 以wpf为例: 全屏代码: this.Topmost = true; this.WindowStyle = System.Windows.Wi ...

  8. CentOS6.8 使man支持显示中文

    1.安装显示中文的man命令 wget https://src.fedoraproject.org/repo/pkgs/man-pages-zh-CN/manpages-zh-1.5.1.tar.gz ...

  9. FusionCharts:tooltip分行显示

    FusionCharts:tooltip分行显示 tooltip分行显示:如果tooltip过长,可分行显示,在tooltip中增加{br} <chart> <set label=' ...

随机推荐

  1. JAVA编程思想 Ch3.5题

    练习5:创建一个class类,包含连两个String字段 :name.says.在main方法中创建两个Dog方法 一个命名为spot 叫声为 Ruff,另一个命民为scruffy,叫声为:Wuff: ...

  2. 图论--最长路--洛谷P1807 最长路_NOI导刊2010提高(07)

    题目描述 设G为有n个顶点的有向无环图,G中各顶点的编号为1到n,且当为G中的一条边时有i < j.设w(i,j)为边的长度,请设计算法,计算图G中<1,n>间的最长路径. 输入格式 ...

  3. 图论-网络流-Dinic (邻接表版)

    //RQ的板子真的很好用 #include<cstdio> #include<cstring> #include<queue> #define INF 1e9 us ...

  4. 从0开始搭建精灵宝可梦的检测APP

    从0开始搭建精灵宝可梦的检测APP 本文为本人原创,转载请注明来源链接 环境要求 Tensorflow1.12.0 cuda 9.0 python3.6.10 Android Studio Anaco ...

  5. Jmeter 结构体系及运行顺序

    一.Jmeter 运行原理: Jmeter 时以线程的方式来运行的(由于Jmeter 是 java 开发的所以是运行在 JVM 虚拟机上的,java 也是支持多线程的) 二.Jmeter 结构体系 1 ...

  6. Coursera课程笔记----Write Professional Emails in English----Week 3

    Introduction and Announcement Emails (Week 3) Overview of Introduction & Announcement Emails Bas ...

  7. Coursera课程笔记----计算导论与C语言基础----Week 8

    C语言中的运算成分(Week 8) 赋值运算符 "="赋值运算符 给赋值号左边的变量赋予数值 在变量定义的同时可以为变量赋初值 要点一:两面类型不同 若=两边的类型不一致,赋值时要 ...

  8. 【Spark】Spark必不可少的多种集群环境搭建方法

    目录 Local模式运行环境搭建 小知识 搭建步骤 一.上传压缩包并解压 二.修改Spark配置文件 三.启动验证进入Spark-shell 四.运行Spark自带的测试jar包 standAlone ...

  9. 【Kafka】Consumer API

    Consumer API Kafka官网文档给了基本格式 http://kafka.apachecn.org/10/javadoc/index.html?org/apache/kafka/client ...

  10. 初级PLC

    SMB2接收到一个数据即产生一次中断,必须在中断处理程序中将数据从SMB2中读出,依次填表.这是一种效率极低的通讯处理方法,通讯字节多了会影响其它程序的运行. M 是位地址.比如M0.0,M0.1等. ...