DefaultStyleKeyProperty 和 FocusableProperty


FocusableProperty:

只有具有焦点的元素才可以接收键盘输入。

Focusable 是 Microsoft .NET 属性访问器,它实际上是一个依赖项属性。 这一特定依赖项属性非常普遍地在派生元素类(尤其是控件)中以不同方式设置其原本的“默认”值。 这种情况通常以两种方式发生:

  • 依赖项属性由特定的派生类继承,但是该派生类重写了依赖项属性的元数据并更改了属性的默认值。

  • 向某个元素应用了样式或模板,从而设置了不同的依赖项属性值。

例如,Button 控件的原本“默认” Focusable 将是 true,即使 Button 直接从 UIElement 继承 Focusable 作为 common language runtime (CLR) 属性也是如此。 这是因为 Focusable 依赖项属性应用的元数据值在 Control 基类的静态构造函数中被重写,该基类位于类层次结构的 ButtonUIElement 之间。

在被 Control 或其派生类继承时,Control 将此属性的默认值重新定义为 true

在被 Label(它是 Control 的派生类)继承时,默认值再次重新定义为 false

对继承者的说明

当从 UIElement (与从 Control 相对)直接派生时,应考虑是否希望元素可获得焦点,因为默认情况下元素不能获得焦点。 如果希望使元素可获得焦点,则在类型的静态构造函数中重写此属性的元数据,如下所示:

FocusableProperty.OverrideMetadata(typeof(myElement), new UIPropertyMetadata(true));

其中,myElement 应该是要重写元数据值的类型的类名。


DefaultStyleKeyProperty:

当此依赖项属性位于指定类型的实例上时为其提供替换元数据,而不是在最初注册依赖项属性时提供的元数据。

重载此成员。有关此成员的完整信息(包括语法、用法和示例),请单击重载列表中的相应名称。



这样就可以先把wpf 控件的类先定义好,然后用DefaultStyleKeyProperty把类与xaml数据关联起来.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值