博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF控件库:文字按钮的封装
阅读量:4927 次
发布时间:2019-06-11

本文共 2141 字,大约阅读时间需要 7 分钟。

需求:封装按钮,按钮上面只显示文字。在鼠标移上去、鼠标点击按钮、以及将按钮设为不可用时按钮的背景色和前景色需要发生变化

实现:继承Button类,封装如下6个属性:

#region 依赖属性/// /// 当鼠标移到按钮上时,按钮的前景色(这是依赖属性)/// public static readonly DependencyProperty MouserOverForegroundProperty =    DependencyProperty.Register ( "MouserOverForeground", typeof ( Brush ), typeof ( TextButton ), new PropertyMetadata ( Brushes.Black ) );/// /// 鼠标移到按钮上时,按钮的背景色(这是依赖属性)/// public static readonly DependencyProperty MouseOverBackgroundProperty =    DependencyProperty.Register ( "MouseOverBackground", typeof ( Brush ), typeof ( TextButton ), new PropertyMetadata ( Brushes.White ) );/// /// 当鼠标按下时,按钮的前景色(这是依赖属性)/// public static readonly DependencyProperty MousedownForegroundProperty =    DependencyProperty.Register ( "MousedownForeground", typeof ( Brush ), typeof ( TextButton ), new PropertyMetadata ( Brushes.Black ) );/// /// 当鼠标按下时,按钮的背景色(这是依赖属性)/// public static readonly DependencyProperty MousedownBackgroundProperty =    DependencyProperty.Register ( "MousedownBackground", typeof ( Brush ), typeof ( TextButton ), new PropertyMetadata ( Brushes.White ) );/// /// 当按钮不可用时,按钮的前景色(这是依赖属性)/// public static readonly DependencyProperty DisabledForegroundProperty =    DependencyProperty.Register ( " DisabledForeground", typeof ( Brush ), typeof ( TextButton ), new PropertyMetadata ( Brushes.Black ) );/// /// 当按钮不可用时,按钮的背景色(这是依赖属性)/// public static readonly DependencyProperty DisabledBackgroundProperty =    DependencyProperty.Register ( "DisabledBackground", typeof ( Brush ), typeof ( TextButton ), new PropertyMetadata ( Brushes.White ) );#endregion

然后更改按钮的样式,样式封装在资源字典中:

然后在TextButton的构造函数中设置按钮的样式:

#region 构造函数public TextButton() : base(){    //获取资源文件信息    ResourceDictionary rd = new ResourceDictionary();    rd.Source = new Uri ( "/Zmy.Wpf.Controls;component/Style.xaml", UriKind.Relative );    this.Resources.MergedDictionaries.Add ( rd );    //设置样式    this.Style = this.FindResource ( "TextButtonStyle" ) as Style;}#endregion

这样整个文字按钮就封装好了,调用起来非常简单:

 

 源代码下载:http://download.csdn.net/detail/lyclovezmy/7356125

不要积分。

对应的图片按钮封装:

转载于:https://www.cnblogs.com/DoNetCoder/p/3732005.html

你可能感兴趣的文章
XMLHttpRequest之status
查看>>
[Daily Life]百首好歌
查看>>
利用cycript动态调试app
查看>>
Java过滤器(Filter)与SpringMVC拦截器(Interceptor)之间的关系与区别
查看>>
List集合序列排序的两种方法
查看>>
MVC 项目发布IIS之后 静态页面无法访问问题 404
查看>>
HDU 4740 The Donkey of Gui Zhou
查看>>
FZU 1096 QS Network
查看>>
TypeScript设计模式之策略、模板方法
查看>>
Linux2.6-4G的线性地址空间的分配与使用
查看>>
京东分布式缓存redis应用实战
查看>>
个人用户永久免费,可自动升级版Excel插件,使用VSTO开发,Excel催化剂功能第8波-快速可视化数据...
查看>>
官网分析(英雄传奇)(如何设计网站前端)
查看>>
SSH Key的生成和使用(for git)
查看>>
html5--6-52 动画效果-过渡
查看>>
调查表与调查结果分析
查看>>
Windows系统下安装MySQL详细教程(命令安装法)
查看>>
PHP实用小程序(六)
查看>>
PDFsharp Samples
查看>>
django-cms 代码研究(八)app hooks
查看>>