博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF UserControl 的绑定事件、属性、附加属性
阅读量:5995 次
发布时间:2019-06-20

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

原文:

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Vblegend_2013/article/details/83477473

 

WPF UserControl里可供绑定的属性

///         /// 重写基类 Margin        ///         public new Thickness Margin        {            get { return (Thickness)GetValue(MarginProperty); }            set { SetValue(MarginProperty, value); }        }        public new static readonly DependencyProperty MarginProperty = DependencyProperty.Register("Margin", typeof(Thickness), typeof(MirrorGrid), new FrameworkPropertyMetadata(new Thickness(0), new PropertyChangedCallback(OnMarginChanged)));        private static void OnMarginChanged(DependencyObject target, DependencyPropertyChangedEventArgs e)        {            ((FrameworkElement)target).Margin = (Thickness)e.NewValue;        }

UserControl 里的事件路由

///         /// 声明路由事件        /// 参数:要注册的路由事件名称,路由事件的路由策略,事件处理程序的委托类型(可自定义),路由事件的所有者类类型        ///         public static readonly RoutedEvent OnToolTipShowEvent = EventManager.RegisterRoutedEvent("OnToolTipShow", RoutingStrategy.Bubble, typeof(RoutedEventArgs), typeof(UserControl));        ///         /// 处理各种路由事件的方法         ///         public event RoutedEventHandler OnToolTipShow        {            //将路由事件添加路由事件处理程序            add { AddHandler(OnToolTipShowEvent, value,false); }            //从路由事件处理程序中移除路由事件            remove { RemoveHandler(OnToolTipShowEvent, value); }        }

路由事件

private void RoutedToolTipShow(RoutedEventArgs param)        {            param.RoutedEvent = OnToolTipShowEvent;            param.Source = this;            this.RaiseEvent(param);        }

控件附加属性

public abstract class AquariumServices : DependencyObject    {        public enum Bouyancy {Floats,Sinks,Drifts}        public static readonly DependencyProperty BouyancyProperty = DependencyProperty.RegisterAttached(          "Bouyancy",          typeof(Bouyancy),          typeof(AquariumServices),          new PropertyMetadata(Bouyancy.Floats)        );        public static void SetBouyancy(DependencyObject element, Bouyancy value)        {            element.SetValue(BouyancyProperty, value);        }        public static Bouyancy GetBouyancy(DependencyObject element)        {            return (Bouyancy)element.GetValue(BouyancyProperty);        }    }

 

你可能感兴趣的文章
Shell中的while循环【转】
查看>>
Linux下安装memcached
查看>>
qt介绍
查看>>
error
查看>>
ASP.NET MVC下使用AngularJs语言(一):Hello your name
查看>>
[书目20111003]Ivor Horton's Beginning Java, Java 7 Edition
查看>>
centos使用yum安装软件的时候出现了undefined symbol: CRYPTO_set_locking_callback
查看>>
android studio下生成jni头文件
查看>>
最简单的Android教程之自定义控件
查看>>
虚拟 router 原理分析- 每天5分钟玩转 OpenStack(101)
查看>>
使用linux的shell脚本实现在当前行重复动态显示时间等字符串信息(不另起新行)...
查看>>
myeclipse开发代码颜色搭配保护视力
查看>>
iOS开发-数据存储NSCoder
查看>>
SQL Server 存储过程【转】
查看>>
localstorage和sessionstorage上手使用记录
查看>>
荣耀手机缅甸仰光店开业,只有我觉得缅甸美女比较多吗?
查看>>
融合数据库技术,降低开源MySQL使用成本实践
查看>>
IDC:全球以太网交换机和路由器市场整体看涨
查看>>
英国零售商:“无协议脱欧”恐让超市空荡荡
查看>>
致 CODING 用户的元宵问候
查看>>