WPF MarkupExtension

导读:本篇文章讲解 WPF MarkupExtension,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

创建自己的特殊标签。

继承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这个方法的里面参数

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/12607.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!