WPF 精修篇 附加属性
Posted lonelyxmas
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 精修篇 附加属性的主要内容,如果未能解决你的问题,请参考以下文章