style原則問題

就近原則

1、“行內(nèi)”覆蓋“嵌入”,“嵌入”覆蓋“外部”
Style.xml

<Window.Resources>   
    <Grid.Resources>   
….中間層
        <Button.Resources>   
        </Button.Resources>  
    </Grid.Resources> 
</Window.Resources>     

舉例

下例中,Button顯示Coral的顏色,如果去掉Coral,則顯示Chartreuse,去掉行內(nèi)和嵌入,才顯示Aqua
Coral>Chartreuse>Aqua

<Grid>
    <Grid.Resources>
        <!--外部-->
        <Style TargetType="Button">
            <Setter Property="Background" Value="Aqua"></Setter>
        </Style>
    </Grid.Resources>
    <!--行內(nèi)-->
    <Button Background="Coral">
        <Button.Resources>
            <!--嵌入-->
            <Style TargetType="Button">
                <Setter Property="Background" Value="Chartreuse"></Setter>
            </Style>
        </Button.Resources>
    </Button>
</Grid>

給外部資源命名,并在行內(nèi)引用,則此時外部->行內(nèi)
Coral>Aqua>Chartreuse

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

2、同級別遵循“就近”

引用原則

如果沒有給Style命名,則默認(rèn)所有該范圍下的目標(biāo)控件都使用該Style
如果一個控件有多個Style,則根據(jù)就近原則來判定用什么Style
如果Style有命名(x:Key),則需要在控件中引用Style(eg.Style="{StaticResource ButtonStyle}")才會使用該Style

同一控件只能設(shè)置一次Resources

1

示例代碼

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,814評論 1 92
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,556評論 25 708
  • 轉(zhuǎn)載請聲明 原文鏈接地址 關(guān)注公眾號獲取更多資訊 第一部分 HTML 第一章 職業(yè)規(guī)劃和前景 職業(yè)方向規(guī)劃定位...
    前端進(jìn)階之旅閱讀 16,627評論 32 459
  • 這世界上有些酒天生就不是用來喝的,而是用來收藏的!既然是藏品,價格肯定只有一個字:貴。 今天就帶你們見識一下全球最...
    小地方酒閱讀 612評論 0 0