码迷,mamicode.com
首页 > 其他好文 > 详细

style原则问题

时间:2017-12-31 12:58:35      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:ice   follow   github   ring   target   grid   round   contain   original   

就近原则

1、“行内”覆盖“嵌入”,“嵌入”覆盖“外部”
Style.xml

<Window.Resources>   
    <Grid.Resources>   
….中间层
        <Button.Resources>   
        </Button.Resources>  
    </Grid.Resources> 
</Window.Resources>     

举例

下例中,Button显示Coral的颜色,如果去掉Coral,则显示Chartreuse,去掉行内和嵌入,才显示Aqua
Coral>Chartreuse>Aqua

<Grid>
    <Grid.Resources>
        <!--外部-->
        <Style TargetType="Button">
            <Setter Property="Background" Value="Aqua"></Setter>
        </Style>
    </Grid.Resources>
    <!--行内-->
    <Button Background="Coral">
        <Button.Resources>
            <!--嵌入-->
            <Style TargetType="Button">
                <Setter Property="Background" Value="Chartreuse"></Setter>
            </Style>
        </Button.Resources>
    </Button>
</Grid>

给外部资源命名,并在行内引用,则此时外部->行内
Coral>Aqua>Chartreuse

<Grid>
    <Grid.Resources>
        <!--外部以行内的形式存在-->
        <Style TargetType="Button" x:Key="ButtonStyle">
            <Setter Property="Background" Value="Aqua"></Setter>
        </Style>
    </Grid.Resources>
    <!--行内-->
    <Button Background="Coral" Style="{StaticResource ButtonStyle}">
        <Button.Resources>
            <!--嵌入-->
            <Style TargetType="Button">
                <Setter Property="Background" Value="Chartreuse"></Setter>
            </Style>
        </Button.Resources>
    </Button>
</Grid>

2、同级别遵循“就近”

同一控件只能设置一次Resources

 
技术分享图片

示例代码

https://github.com/zLulus/NotePractice/tree/dev3/WPF/WpfDemo/Style 的StyleDemo和StyleDemo2

style原则问题

标签:ice   follow   github   ring   target   grid   round   contain   original   

原文地址:https://www.cnblogs.com/Lulus/p/8157360.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!