#123 – Coercing a Dependency Property(强制转换依赖属性的值)
2016-06-28 11:10
489 查看
原文地址:
https://wpf.2000things.com/2010/11/12/123-coercing-a-dependency-property/
在一个类中使用依赖属性的时候,可以选择在注册该依赖属性的时候指定一个强制转换回调函数(coercion callback)。当属性将要返回一个属性值的时候该回调函数被调用。通过强制转换回调函数可以强制改变依赖属性的值。
在注册依赖属性的时候,通过CoerceValueCallback 委托指定强制转回调函数
通过强制转换设置属性值的最大和最小范围
private static object OnAgeCoerceValue
(DependencyObject depObj, object baseValue)
{
int coercedValue = (int)baseValue;
if ((int)baseValue > 120)
coercedValue = 120;
if ((int)baseValue < 1)
coercedValue = 1;
return coercedValue;
}
https://wpf.2000things.com/2010/11/12/123-coercing-a-dependency-property/
在一个类中使用依赖属性的时候,可以选择在注册该依赖属性的时候指定一个强制转换回调函数(coercion callback)。当属性将要返回一个属性值的时候该回调函数被调用。通过强制转换回调函数可以强制改变依赖属性的值。
在注册依赖属性的时候,通过CoerceValueCallback 委托指定强制转回调函数
PropertyMetadata ageMetadata = new PropertyMetadata( 18, // Default value new PropertyChangedCallback(OnAgeChanged), new CoerceValueCallback(OnAgeCoerceValue)); // ** 运行类对依赖属性值进行强制转换 // Register the property AgeProperty = DependencyProperty.Register( "Age", // Property's name typeof(int), // Property's type typeof(Person), // Defining class' type ageMetadata, // Defines default value & changed/coercion callbacks (optional) new ValidateValueCallback(OnAgeValidateValue)); // validation (optional)
通过强制转换设置属性值的最大和最小范围
private static object OnAgeCoerceValue
(DependencyObject depObj, object baseValue)
{
int coercedValue = (int)baseValue;
if ((int)baseValue > 120)
coercedValue = 120;
if ((int)baseValue < 1)
coercedValue = 1;
return coercedValue;
}
相关文章推荐
- C#及WPF获取本机所有字体和颜色的方法
- WPF MVVM示例讲解
- WPF实现时钟特效
- PowerShell中调用WPF生成炫酷窗口实例
- WPF实现类似360安全卫士界面的程序源码分享
- C#中WPF使用多线程调用窗体组件的方法
- WPF实现渐变淡入淡出的登陆窗口效果
- WPF的数据绑定详细介绍
- WPF绑定实例详解
- 关于WPF使用MultiConverter控制Button状态的详细介绍
- 如何搭建新的WPF项目框架
- 超炫酷的WPF实现Loading控件效果
- 解析WPF实现音频文件循环顺序播放的解决方法
- WPF Toolkit - February 2010 Release
- 使用WPF创建一个Digg桌面应用
- Barcode Professional for WPF
- WPF数据表格支持vs2010
- Silverlight Gantt甘特图银光,WPF,甘特图,Silverlight,Gantt,任务甘特图,资源甘特图
- WPF甘特图开发包(含任务甘特图和资源甘特图)
- WPF设置窗体最前端显示