依附项属性

借助于项属性 简单了解

2018/1/3 15:36:07


dependency property 的简便了然(略去大部头掌握)

依据项属性

信赖项属性的值不是粗略的封装字段,而是基于其余的输入值来支配本属性的值。为啥要这么做?因为在WPF体系中,唯有定义属性为借助项属性,那本天性才支撑样式设置,数据绑定,承袭,动画和私下认可值。
七个相当重要行为:改换通告和动态值识别。
简短,信赖属性正是一种能够和煦从未有过值,并能通过Binding从数据源获得值(依赖在别人身上)的属性。具有信赖属性的目的被誉为“重视对象”。

wpf使用依赖项属性的办法

当属性爆发变化时,重视项属性不会自动引发事件以公告属性值产生了调换。会触发受尊崇名字为OnPropertyChangedCallback()的不二秘诀。该方法通过七个wpf服务(数据绑定和触发器)传递消息,并调用PropertyChangedCallback回调函数(假诺已经定义了此函数)。
即:当属性发生变化时,假使期望进行响应,则有二种选用:1.选取属性值创制绑定
2.编纂能够自行改造其余质量或初叶动画的触发器。
(省略了绝大繁多头细节)

外加属性

外加属性(Attached
Properties)便是说,贰特品质本来不属于有个别对象,但鉴于某种须求而被新兴附加上。举例:Button控件本人并未有Grid.Row属性,不过将Button放在Grid布局里面,就能够用那么些天性来安装Xutton的职责。类似的,放在Canvas里面,能够叠合属性Canvas.Top;放在DockPanel里,能够使用DockPanel.Dock。

<Grid ShowGridLines="True">
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <Button Background="Black" Grid.Column="1" Grid.Row="1"/>
</Grid>

叠合属性也得以行使Binding依赖在任何对象的多少上。举例:用多少个slider调整矩形在Canvas中的横纵坐标。

<Canvas>
    <Slider x:Name="sliderX" Canvas.Top="10" Canvas.Left="10" Width="260" Minimum="50" Maximum="200"/>
    <Slider x:Name="sliderY" Canvas.Top="40" Canvas.Left="10" Width="260" Minimum="50" Maximum="200"/>
    <Rectangle x:Name="rect" Fill="Blue" Width="30" Height="30" Canvas.Left="{Binding ElementName=sliderX,Path=Value}" Canvas.Top="{Binding ElementName=sliderY,Path=Value}"/>
</Canvas>

结果如图:

图片 1

图片 2