silverlight MVVM 附加属性AttachedBehaviors的实现
来源:互联网 发布:mac mysql管理工具 编辑:程序博客网 时间:2024/05/10 02:24
附加属性类
using System;using System.Net;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Ink;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;namespace DTO.SL{ /// <summary> /// 附加属性类 /// </summary> public class AttachedBehavior { public static readonly DependencyProperty BrushProperty = DependencyProperty.RegisterAttached( "Brush", typeof(Brush), typeof(AttachedBehavior), new PropertyMetadata(null, new PropertyChangedCallback(OnBrushChanged))); /// <summary> /// 属性修改事件 /// </summary> public static void OnBrushChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args) { //获取属性所在的控件 TextBlock con = obj as TextBlock; //注册控件事件 if (con != null) { con.MouseEnter += new MouseEventHandler(OnControlEnter); con.MouseLeave += new MouseEventHandler(OnControlLeave); } } /// <summary> /// 获取属性的值 /// </summary> /// <param name="boj"></param> /// <returns></returns> public static Brush GetBrush(DependencyObject boj) { return (Brush)boj.GetValue(BrushProperty); } /// <summary> /// 设置属性的值 /// </summary> /// <param name="boj"></param> /// <param name="value"></param> public static void SetBrush(DependencyObject boj, Brush value) { boj.SetValue(BrushProperty, value); } /// <summary> /// 鼠标进入事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void OnControlEnter(object sender, MouseEventArgs e) { //获取当前控件 TextBlock con = (TextBlock)e.OriginalSource; //设置控件颜色为红色 con.Foreground = new SolidColorBrush(Colors.Red); } /// <summary> /// 鼠标离开事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void OnControlLeave(object sender, MouseEventArgs e) { //获取当前控件 TextBlock con = (TextBlock)e.OriginalSource; //设置控件的颜色为控件的附加Brush属性 con.Foreground = GetBrush(con); } }}
Xaml代码
xmlns:Custom="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:myConvert="clr-namespace:DTO.SL;assembly=DTO.SL" <TextBlock Width="100" Text="GOLD" myConvert:AttachedBehavior.Brush="Gold"></TextBlock> <TextBlock Width="100" Text="Violet" myConvert:AttachedBehavior.Brush="Violet"></TextBlock> <TextBlock Width="100" Text="LemonChiffon" myConvert:AttachedBehavior.Brush="LemonChiffon"></TextBlock>
0 0
- silverlight MVVM 附加属性AttachedBehaviors的实现
- Silverlight的依赖属性与附加属性
- Silverlight的依赖属性与附加属性
- Silverlight的依赖属性与附加属性
- Silverlight的依赖属性与附加属性
- Silverlight的依赖属性与附加属性
- Silverlight的MVVM模式
- WPF Silverlight 附加属性(AttachedProperty)
- SilverLight:在MVVM中实现多事件
- SilverLight:在MVVM中实现多事件
- SilverLight:在MVVM中实现多事件
- Silverlight/MVVM
- Silverlight MVVM
- Silverlight的依赖属性与附加属性http://www.silverlightchina.net/html/tips/2010/0328/920.html
- Js动态添加事件 实现附加自己的事件属性
- 对话框的MVVM实现
- Silverlight的依赖属性
- 依赖属性和附加属性的自定义
- 指针与数组的疑惑
- 设计模式总结
- 最大连续子数组和问题
- 软件开发要学编程什么知识?
- HeadFirst设计模式 之 C++实现(一):Strategy(策略模式) && 初入设计模式殿堂
- silverlight MVVM 附加属性AttachedBehaviors的实现
- MST的Prim算法和Kruskal算法
- 干将莫邪(Sharp Tools)
- 数字电视表数据的过滤
- gun工具链与makefile
- JD 题目1459:Prime ring problem (dfs)
- Java静态域(属性、方法、类)
- JavaScript变量、作用域及内存问题
- python中的异常