原文:WPF 精修篇 附加属性

微软把DLL都开源了  今天看了一下 很多WPF实现内容都在里面

https://referencesource.microsoft.com/

说附加属性 附加属性 是全局属性

用来规范全局变量  等等~ 是也可以 给控件 单独增加属性功能

举栗子

给textbox 增加附加属性 并不会增加 到Textbox 类里

功能 按Tab的时候 会全选 textbox2的内容

增加了一个类 并使用 propa 定义了附加属性


  1. public class TextChange
  2. {
  3. public static bool GetSelectOn(DependencyObject obj)
  4. {
  5. return (bool)obj.GetValue(SelectOnProperty);
  6. }
  7. public static void SetSelectOn(DependencyObject obj, bool value)
  8. {
  9. obj.SetValue(SelectOnProperty, value);
  10. }
  11. // Using a DependencyProperty as the backing store for SelectOn. This enables animation, styling, binding, etc...
  12. public static readonly DependencyProperty SelectOnProperty =
  13. DependencyProperty.RegisterAttached("SelectOn", typeof(bool), typeof(TextChange), new PropertyMetadata(false, onNotify));
  14. private static void onNotify(DependencyObject d, DependencyPropertyChangedEventArgs e)
  15. {
  16. object item = d;
  17. if (item is TextBox)
  18. {
  19. (item as TextBox).GotFocus += (s, arges) =>
  20. {
  21. (item as TextBox).SelectAll();
  22. };
  23. }
  24. }
  25. }

在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 精修篇 附加属性的更多相关文章

  1. WPF 精修篇 数据触发器

    原文:WPF 精修篇 数据触发器 数据触发器 可以使用Binding 来绑定控件 或者数据源 来触发相关动作 举栗子 <Window.Resources> <Style Target ...

  2. WPF 精修篇 属性触发器

    原文:WPF 精修篇 属性触发器 属性触发器是通过  某个条件触发改变属性 通过无代码实现功能 <Style TargetType="{x:Type Label}"> ...

  3. WPF 精修篇 样式继承

    原文:WPF 精修篇 样式继承 这个 是新知识 样式可以继承 <Style x:Key="TextBlockStyleBase" TargetType="{x:Ty ...

  4. WPF 精修篇 自定义控件

    原文:WPF 精修篇 自定义控件 自定义控件 因为没有办法对界面可视化编辑 所以用来很少 现在实现的是 自定义控件的 自定义属性 和自定义方法 用VS 创建自定义控件后 会自动创建 Themes 文件 ...

  5. WPF 精修篇 用户控件

    原文:WPF 精修篇 用户控件 增加用户控件 数据绑定还是用依赖属性 使用的事件 就委托注册一下 public delegate void ButtonClick(object b,EventArgs ...

  6. WPF 精修篇 DataGrid 筛选

    原文:WPF 精修篇 DataGrid 筛选 DataGrid也可以分组 但是用的地方不多 就没写 筛选还是可以的 比如Datagrid数据量比较大 要做数据筛选 贴码 <DataGrid x: ...

  7. WPF 精修篇 DataGrid 数据源排序

    原文:WPF 精修篇 DataGrid 数据源排序 效果 <DataGrid x:Name="datagrid" ItemsSource="{Binding Ele ...

  8. WPF 精修篇 数据绑定到对象

    原文:WPF 精修篇 数据绑定到对象 数据绑定到对象 首先 我们需要一个对象 public class Preson { private string name; public string Name ...

  9. WPF 精修篇 数据绑定 更新通知

    原文:WPF 精修篇 数据绑定 更新通知 开始更新一点有意思的了 首先 数据绑定  其中之一 Element 绑定 看例子 <Window x:Class="WpfApplicatio ...

随机推荐

  1. Zeus:1 Vulnhub Walkthrough

    主机层面扫描: ╰─ nmap -p1-65535 -sV -A 10.10.202.14 PORT STATE SERVICE VERSION21/tcp open ftp vsftpd 2.0.8 ...

  2. How to use special characters in XML?

    https://dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F.html Because X ...

  3. Redis内存数据库在Exchange会议室的整体应用架构

    注:本文是别人写的,感觉写得很好就转过来,版权归原作者所有哦,谁知道出处可以告诉我,谢谢. 根据以上的会议室应用现状分析,该架构的核心是把历史发生的会议室申请数据定时同步到Redis内存数据库中,对于 ...

  4. vue项目空格报错,缩进不对报错,格式报错!!!

    vue-cli构建项目之后发现写几句代码就会报错,但是语法什么的都没有问题,只是因为缩进.空格之类的,对于初学者格式不规范的人来说是相当难受的 图中框住的位置都会报错!! 现在有两种办法: 1.是因为 ...

  5. DynamicList

    DynamicList设计要点——类模板 申请连续空间作为顺序存储空间 动态设置顺序存储空间的大小 保证重置顺序存储空间时的异常安全性 DynamicList设计要点——函数异常安全的概念 不泄露任何 ...

  6. Oracle 11gR2中HR用户安装说明

    1.脚本下载: 链接: 1,脚本放在这个目录下$ORACLE_HOME/demo/schema/human_resources             hr_analz.sql  hr_code.sq ...

  7. [考试反思]1110csp-s模拟测试109:细节

    细节...决定成败 T2数组开小,T3long long没开够. 而且其实不止这样,考试结束前15分钟发现了好多低错: T3双向边没开2倍.dfs没递归调用.T2为了调试bitset开20没改(后来改 ...

  8. docker面试题和解答(一)

    什么Docker Docker是一个容器化平台,它以容器的形式将您的应用程序及其所有依赖项打包在一起,以确保您的应用程序在任何环境中无缝运行. Docker与虚拟机有何不同 Docker不是虚拟化方法 ...

  9. C语言程序设计100例之(16):巧解算式

    例16  巧解算式 问题描述 在1.2.3.4.5.6.7.8.9.10个数中间加上加号或减号,使得到的表达式的值为自然数N,如果中间没有符号,则认为前后为一个数,如1 2 3认为是一百二十三(123 ...

  10. cisco ssh实验--附带配置脚本-2019.11.19

    cisco ssh实验