码迷,mamicode.com
首页 > Windows程序 > 详细

WPF MarkupExtension

时间:2020-05-06 01:51:41      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:cli   pre   属性   tar   get   cal   extension   parse   property   

原文:WPF MarkupExtension

创建自己的特殊标签。

继承Markupextension。

具体用法很简单:

技术图片
  public class IsBiggerNumberExtension : MarkupExtension
    {
        public IsBiggerNumberExtension(object num)
        {
            Number = num;
        }
         public object Number
        {
            get;
            set;
        }
        public IsBiggerNumberExtension()
        {

        }
        public override object ProvideValue(IServiceProvider serviceProvider)
        {
            var target = serviceProvider.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget;

            var dp = target.TargetProperty as DependencyProperty;

            var dpo = target.TargetObject as DependencyObject;

            double d = 0,d2=0;

            var n = double.TryParse(dpo.GetValue(dp).ToString(),out d);

            var n1= double.TryParse(Number.ToString(), out d2);

            var result = d>d2;

            var h = dp.IsValidType(result);

            return h?result:(object)result.ToString();
        }
    }
技术图片

 

<TextBlock Grid.Row="1"  Text="{local:IsBiggerNumber 1}" >

 

 

本例是非常垃圾的。

准确的说是根本排不上用场。

 

这里面最主要的就是ProvideValue这个方法的里面参数

通过这个参数我们可以获取是什么控件,是什么属性在使用这个标签。

 

WPF MarkupExtension

标签:cli   pre   属性   tar   get   cal   extension   parse   property   

原文地址:https://www.cnblogs.com/lonelyxmas/p/12833887.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!