当前位置:  开发笔记 > 运维 > 正文

将样式应用于大量项目的最佳方法是什么?

如何解决《将样式应用于大量项目的最佳方法是什么?》经验,为你挑选了1个好方法。

在我的LOB应用程序中,我通常会使用包含大量不同文本块和文本框的容器,以便用户输入数据.通常我需要对每个控件应用一定的余量或垂直/水平对齐.

假设我的表单上有Grid,看起来像这样(为简洁起见,很多标记都被删除了):


   
   

   
   
   .
   '
   

现在让我们说我需要网格中包含的每个项目都有Margin ="3,1"VerticalContentAlignment ="Left"VerticalAlignment ="Center".有几种方法可以实现这一目标:

    直接在每个控件上设置属性 - 坏!不允许换肤或集中样式.

    使用x:Key ="MyStyleName"创建样式并将样式应用于每个控件.更好......使集中样式和皮肤更易于管理,但仍需要大量标记,并且可能变得笨拙.

    创建一个全局样式(即不指定x:Key并设置TargetType = {x:Type TextBox/TextBlock} - BAD !!这个问题是它会影响应用程序中没有显式覆盖的所有控件这种风格.对于菜单,网格和其他使用文本块和文本框的控件之类的东西,这可能会很糟糕.

    创建一个以Grid为目标的样式,并明确地设置dependecy propety值,例如Not bad ...它正确地将样式应用于其内容中的每个元素,但也将它直接应用于Grid本身......不完全是我想要的.

那么你采取什么方法?为什么?什么效果最好?



1> David Schmit..:

您可以将"全局"样式放Resources入网格部分,从而限制其影响.要在不同位置重用"全局"样式,请将它们放入非默认资源字典中并将其包含为MergedDictionary:

Styles.xaml:


    

形式如下:


   
   

    
        
            
                
            

            

        
    

    ...

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有