WPF 精修篇 附加属性
原文:WPF 精修篇 附加属性
微软把DLL都开源了 今天看了一下 很多WPF实现内容都在里面
https://referencesource.microsoft.com/
说附加属性 附加属性 是全局属性
用来规范全局变量 等等~ 是也可以 给控件 单独增加属性功能
举栗子
给textbox 增加附加属性 并不会增加 到Textbox 类里

功能 按Tab的时候 会全选 textbox2的内容
增加了一个类 并使用 propa 定义了附加属性
-
public class TextChange
-
{
-
-
-
public static bool GetSelectOn(DependencyObject obj)
-
{
-
return (bool)obj.GetValue(SelectOnProperty);
-
}
-
-
public static void SetSelectOn(DependencyObject obj, bool value)
-
{
-
obj.SetValue(SelectOnProperty, value);
-
}
-
-
// Using a DependencyProperty as the backing store for SelectOn. This enables animation, styling, binding, etc...
-
public static readonly DependencyProperty SelectOnProperty =
-
DependencyProperty.RegisterAttached("SelectOn", typeof(bool), typeof(TextChange), new PropertyMetadata(false, onNotify));
-
-
private static void onNotify(DependencyObject d, DependencyPropertyChangedEventArgs e)
-
{
-
object item = d;
-
if (item is TextBox)
-
{
-
(item as TextBox).GotFocus += (s, arges) =>
-
{
-
(item as TextBox).SelectAll();
-
};
-
}
-
-
-
}
-
}
在textbox 界面 引用 xmlns:local="clr-namespace:WpfApplication21" 命名空间
<TextBox HorizontalAlignment="Left" Height="23" Margin="111,133,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120" local:TextChange.SelectOn="True" />
WPF 精修篇 附加属性的更多相关文章
- WPF 精修篇 数据触发器
原文:WPF 精修篇 数据触发器 数据触发器 可以使用Binding 来绑定控件 或者数据源 来触发相关动作 举栗子 <Window.Resources> <Style Target ...
- WPF 精修篇 属性触发器
原文:WPF 精修篇 属性触发器 属性触发器是通过 某个条件触发改变属性 通过无代码实现功能 <Style TargetType="{x:Type Label}"> ...
- WPF 精修篇 样式继承
原文:WPF 精修篇 样式继承 这个 是新知识 样式可以继承 <Style x:Key="TextBlockStyleBase" TargetType="{x:Ty ...
- WPF 精修篇 自定义控件
原文:WPF 精修篇 自定义控件 自定义控件 因为没有办法对界面可视化编辑 所以用来很少 现在实现的是 自定义控件的 自定义属性 和自定义方法 用VS 创建自定义控件后 会自动创建 Themes 文件 ...
- WPF 精修篇 用户控件
原文:WPF 精修篇 用户控件 增加用户控件 数据绑定还是用依赖属性 使用的事件 就委托注册一下 public delegate void ButtonClick(object b,EventArgs ...
- WPF 精修篇 DataGrid 筛选
原文:WPF 精修篇 DataGrid 筛选 DataGrid也可以分组 但是用的地方不多 就没写 筛选还是可以的 比如Datagrid数据量比较大 要做数据筛选 贴码 <DataGrid x: ...
- WPF 精修篇 DataGrid 数据源排序
原文:WPF 精修篇 DataGrid 数据源排序 效果 <DataGrid x:Name="datagrid" ItemsSource="{Binding Ele ...
- WPF 精修篇 数据绑定到对象
原文:WPF 精修篇 数据绑定到对象 数据绑定到对象 首先 我们需要一个对象 public class Preson { private string name; public string Name ...
- WPF 精修篇 数据绑定 更新通知
原文:WPF 精修篇 数据绑定 更新通知 开始更新一点有意思的了 首先 数据绑定 其中之一 Element 绑定 看例子 <Window x:Class="WpfApplicatio ...
随机推荐
- 对java异常的总结及java项目中的常用的异常处理情况
文章涉及内容来源:黑马程序员自学整理的笔记,网上查阅资料,以及转载名为墨钺的博客大佬,附上博客转载地址:https://www.cnblogs.com/gothic-death/p/9946415.h ...
- WordPress 文件下载漏洞
Google dork:inurl:"/wp-content/themes/liberator/inc/php/download.php" exploit:https://www. ...
- java基础学习笔记 第二周(面向对象)
Day01 什么是抽象数据类型:将不同数据类型的集合组成的一个整体,我们称为抽象数据类型 类就是一个抽象数据类型 成员变量:类中的数据类型就是成员变量(属性) 方法:类中的一些行为就是方法 面向过程( ...
- iOS中UICollectionView添加头视图
参考链接:https://www.jianshu.com/p/ef57199bf34a 找了一堆的博客,写的都少了很重要的一步. //引入头部视图 -(UICollectionReusableView ...
- 前端开发规范:2-HTML
HTML标签 文档声明,除非必须要兼容IE6等远古浏览器,否则一律使用HTML5文档类型申明<!DOCTYPE html> 标签闭合,img.br.hr 等自闭合标签不使用闭合斜杠 met ...
- MySQL5.6与MySQL5.7安装的区别
一.MySQL5.6与MySQL5.7安装的区别 1.cmake的时候加入了boost 下载boost.org 2.初始化时 cd /application/mysql/bin/mysql 使用mys ...
- apache storm基本原理及使用总结
什么是Apache Storm Apache Storm是一个分布式实时大数据处理系统.Storm设计用于在容错和水平可扩展方法中处理大量数据.它是一个流数据框架,具有最高的摄取率.虽然Storm是无 ...
- windows重装系统后grub引导菜单修复方法(亲自实验过)
问题: 电脑安装的是windows7+ubuntu 15.10双系统.windows重装后,grub引导界面消失. 解决方法有两大步: 1.进入ubuntu; 2.在ubuntu中修复grub. 一. ...
- Tornado—添加请求头允许跨域请求访问
跨域请求访问 如果是前后端分离,那就肯定会遇到cros跨域请求难题,可以设置一个BaseHandler,然后继承即可. class BaseHandler(tornado.web.RequestHan ...
- 安装完dlib以及face_recognition,但是在python IDE中无法导入的问题
在dlib以及face_recognition通过pip安装成功之后(如何通过pip进行安装,在博主的上一篇随笔中有提及),在pycharm中无法导入. 在综合完网上的各种说法之后,发现了原因,在下边 ...