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 ...
随机推荐
- Docker容器镜像打成tar包
简述需求: 在现在容器上保存镜像进行打包,在另一台服务上使用 首先查看下现有要打tar包的容器 docker ps -a 接下来用commit参数进行保存镜像, -a 提交人的姓名 -m “提交内容 ...
- 华为开发者联盟 方舟编译器 DevEco IDE
华为开发者联盟 https://developer.huawei.com/consumer/cn/ 方舟编译器是为支持多种编程语言.多种芯片平台的联合编译.运行而设计的统一编程平台,包含编译器.工具链 ...
- navicat连接不上Linux服务器上的mysql的解决办法
一开始,心情是沉痛的,截图如下: 转载请注明出处:https://www.cnblogs.com/NaughtyCat/p/how-to-connect-to-mysql-on-linux-by-na ...
- LeetCode刷题191127
数据库: 1179 部门表 Department: +---------------+---------+| Column Name | Type |+---------------+-------- ...
- packstack-ironic
安装openstack Pike版本, 其它版本安装方法类似. centos7.6 packstack目前对NetworkManager 还不支持,我们修改下配置: systemctl disable ...
- linux 安装redis服务
下载地址:http://redis.io/download,下载最新稳定版本. 本教程使用的最新文档版本为 2.8.17,下载并安装: $ wget http://download.redis.io/ ...
- js知识点面试题
网上看到的一个题,在这里存一下 此为题目function Foo() { getName = function () { alert (1); }; return this; } Foo.getNam ...
- Nginx基础知识点总结和优化项
1.什么是Nginx? Nginx是一个高性能的HTTP和反向代理服务器,常用于做负载均衡服务器 2.为什么要用Nginx?跨平台.配置简单非阻塞.高并发连接:处理2-3万并发连接数,官方监测能支持5 ...
- JAVA开发几个常用快捷键
- vue axios 在 edge 浏览器下的bug
Edge 浏览器的版本: Microsoft Edge 42.17134.1.0Microsoft EdgeHTML 17.17134 当请求为POST 时,转换为 GET,并且始终报 “来自缓存 ...