对照一下原版和美化以后得版本

原版: ---------- 新版:

新增了 圆角阴影效果;

第一步:新建项,最下面有一个自定义控件,取名为CornerToolTip。

第二步:系统会创建一个CornerToolTip得类,默认继承自Control,我们把Control改成ToolTip:

第三步:系统生成CornerToolTip类得同时,还会生成一个Themes文件夹,里面会有一个Generic.xaml的资源字典,在这里面可以写自定义控件的样式,

CornerToolTip类里面的静态构造函数里面的下面的代码会去加载资源字典里面的控件对应的样式

DefaultStyleKeyProperty.OverrideMetadata(typeof(CornerToolTip), new FrameworkPropertyMetadata(typeof(CornerToolTip)));

第四步:

<Style TargetType="{x:Type local:CornerToolTip}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CornerToolTip}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5"/>
<ColumnDefinition Width="*" MinWidth="100"/>
<ColumnDefinition Width="5"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="5"/>
<RowDefinition Height="*" MinHeight="30"/>
<RowDefinition Height="5"/>
</Grid.RowDefinitions>
<Border BorderThickness="1" BorderBrush="#FF565353" Background="{StaticResource CornerToolTip.Background}"
CornerRadius="{TemplateBinding CornerRadius}"
Grid.Column="1" Grid.Row="1">
<Border.Effect>
<DropShadowEffect BlurRadius="8" Color="#FF4D4B4B" Direction="306" ShadowDepth="0" RenderingBias="Performance"/>
</Border.Effect>
</Border>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" TextElement.Foreground="Black"
Grid.Column="1" Grid.Row="1" x:Name="cp1"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

最后就可以使用ConerToolTip来替代原始得ToolTip了:

            <Button Content="MouseHoverHere" Height="30" Width="150">
<Button.ToolTip>
<cc:CornerToolTip Content="what can i say" />
</Button.ToolTip>
</Button>

美化一下WPF自带得ToolTip的更多相关文章

  1. WPF 实现带蒙版的 MessageBox 消息提示框

    WPF 实现带蒙版的 MessageBox 消息提示框 WPF 实现带蒙版的 MessageBox 消息提示框 作者:WPFDevelopersOrg 原文链接: https://github.com ...

  2. WPF 自带Datagrid编辑后无法更新数据源的问题

    原文  WPF 自带Datagrid编辑后无法更新数据源的问题 解决办法: 在列的绑定属性里加上UpdateSourceTrigger,示例XAML如下 <DataGrid Grid.Row=& ...

  3. WPF 实现带标题的TextBox

    这篇博客将分享在WPF中如何创建一个带Title的TextBox.首先请看一下最终的效果, 实现思路:使用TextBlock+TextBox来实现,TextBlock用来显示Title. 实现代码, ...

  4. WPF: 实现带全选复选框的列表控件

    本文将说明如何创建一个带全选复选框的列表控件.其效果如下图:     这个控件是由一个复选框(CheckBox)与一个 ListView 组合而成.它的操作逻辑: 当选中“全选”时,列表中所有的项目都 ...

  5. WPF实现带全选复选框的列表控件

    本文将说明如何创建一个带全选复选框的列表控件.其效果如下图: 这个控件是由一个复选框(CheckBox)与一个 ListView 组合而成.它的操作逻辑: 当选中“全选”时,列表中所有的项目都会被选中 ...

  6. 【原创】WPF TreeView带连接线样式的优化(WinFrom风格)

    一.前言 之前查找WPF相关资料的时候,发现国外网站有一个TreeView控件的样式,是WinFrom风格的,样式如下,文章链接:https://www.codeproject.com/tips/67 ...

  7. WPF中带水印的Textbox

    很多时候我们都希望通过水印来告诉用户这里该填什么样格式的数据,那么我们就希望有这样的一个控件. 为了方便起见,先定义一个依赖属性专门来存放水印中显示的字符串. public sealed class ...

  8. WPF制作带明细的环形图标

    效果 明细用Popup实现的,录gif时,Popup显示不出来,不知道为什么,所以静态图凑合看吧 大体思路 图表使用Arc+Popup实现 图表分为两部分,一是环形部分,一是标注的明细部分. 环形部分 ...

  9. WPF制作带明细的环形图表

    效果 明细用Popup实现的,录gif时,Popup显示不出来,不知道为什么,所以静态图凑合看吧 大体思路 图表使用Arc+Popup实现 图表分为两部分,一是环形部分,一是标注的明细部分. 环形部分 ...

  10. wpf自定义带刻度的柱状图控件

    效果图: 主要代码xaml: <UserControl x:Class="INSControls._01Conning.Steer.ConningSpeedBar" xmln ...

随机推荐

  1. Linux/Unix-stty命令详解

    文章目录 介绍 stty命令的使用方法 stty的参数 我常用的选项 所有选项 介绍 stty用于查询和设置当前终端的配置. 如果你的终端回车不换行.输入命令不显示等各种奇葩问题,那么stty命令可以 ...

  2. 基于LoRA的RLHF

    参考Github 开源模型LLM-Tuning 一.简介 (1)RLHF (基于人类反馈的强化学习) 分为三步: SFT (Supervised Fine-Tuning): 有监督的微调,使用正常的 ...

  3. python3 pip3 安装 xmlrpc 失败

    python2 使用的是xmlrpclib库,到了 python3, 就直接使用 xmlrpc.client 和 xmlrpc.server了. 接下来,我使用 pip3 install xmlrpc ...

  4. javascript深入参数传递

    我们都知道javascript的基础数据类型有: Undefined . Null . Boolean . Number . String . 如果从一个变量向另一个变量复制基本类型的值,会在变量对象 ...

  5. IstioCon 回顾 | 网易数帆的 Istio 推送性能优化经验

    在 IstioCon2022 上,网易数帆资深架构师方志恒从企业生产落地实践的视角分享了多年 Istio 实践经验,介绍了 Istio 数据模型,xDS 和 Istio 推送的关系,网易数帆遇到的性能 ...

  6. [oeasy]python0108_谷腾堡活字_哥特字体_罗马帝国_希腊文化_文艺复兴

    谷腾堡活字 回忆上次内容 上次回顾了字型编码的进化过程 7-seg 七位数码管 显示数字   14-seg 十四位数码管 显示字母     ​   添加图片注释,不超过 140 字(可选)   米字管 ...

  7. Python 标准类库-因特网数据处理之Base64数据编码

    该模块提供将二进制数据编码为可打印ASCII字符并将这种编码解码回二进制数据的功能.它为RFC 3548中指定的编码提供编码和解码功能.定义了Base16.Base32和Base64算法,以及事实上的 ...

  8. 跟着ChatGPT学习设计模式 - 工厂模式

    1. 前言 在工作过程中,越发觉得设计模式的重要性.经常会有人说工作5年的人,大学生随便培训1-2月也能做同样的工作,没错,大学生的确可以做. 但其写的代码,可维护性.可扩展性.添加新功能时方便还是简 ...

  9. docker 概念,安装,启动,运行

    docker概念,安装,启动,运行模式 docker的概念 镜像(image) 模板,可以通过模板来创建容器服务,tomcat镜像===>run==>tomacat01容器(提供服务),通 ...

  10. Linux安装软件命令详解

    Linux安装软件命令详解 目录 一.deb包的简介.安装及卸载步骤 二.rpm包的简介.安装及卸载步骤 三.AppImage包的简介.执行步骤 四.tar.gz.tar.bz2源代码包的简介.安装及 ...