WPF MarkupExtension

2021-03-07 01:27

阅读:623

标签: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


评论


亲,登录后才可以留言!