ITPub博客

首页 > Linux操作系统 > Linux操作系统 > WPF中Dependency属性设置顺序的心得

WPF中Dependency属性设置顺序的心得

原创 Linux操作系统 作者:iDotNetSpace 时间:2009-02-11 16:33:13 0 删除 编辑

今天在学习WPF依赖属性的时候做了一个很经典的例子,即通过XMAL中的Trigger来改变按钮的前景色。具体代码如下:

 

 

Code

 

 

可以很好的实现,将鼠标移至按钮上,然后按钮的前景色变为蓝色的功能。

但是尝试给此按钮设置一个Foreground属性,代码:

 

Code

            OK
           
               
                   
                       
                           
                       

                   

               
           

         

则使Trigger设置前者色的作用失效了。于是这便使我联想到这几天看到的一篇Dependency属性计算顺序的文章

(http://www.cnblogs.com/YilingLai/archive/2006/12/25/602889.html)

原来在第一步计算基础值的时,系统是按照下面的优先级来计算Dependency属性的值的:

 

 

 1、Local Value                 

2、Style. Triggers             

3、Template Triggers                  

4、Style. Setters

5、Theme Style. Triggers   

6、Theme Style. Setters    

7、Property Value Inheritance     

8、Default Value

因为Foreground="Black"属于Local Value,比Style. Triggers的优先级要高,所以在计算过程中

它掩盖了Style. Triggers对Foreground属性值的作用。

那么既需要设置Foreground同时也需要通过设置Trigger来改变它怎么做呢?

答案就是如下面代码所示:

 

 

Code

       
           
               
                   
               

           

           
       
   

   
       
     

将Style提取到Window.Resources中,然后使此Button引用此资源。

因为在计算基础值的顺序时,Style. Triggers排在第二,而Style. Setter则排在第四的位置上。

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12639172/viewspace-548718/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: C#索引器和属性
请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5777922