Silverlight學習之樣式

來源:互聯網
上載者:User

Silverlight中的樣式和Html中的CSS概念差不多,可以單獨寫在一個檔案中,用來達到複用的效果。

樣式按照範圍主要分為三類  內部樣式 局部樣式 全域樣式,其中局部樣式和全域樣式大體相同,下邊會放在一塊。

內部樣式

<Canvas>
           <Button Height="50" Width="150" Content="Hello World" Canvas.Left="50" Canvas.Top="20">
            <Button.Style>
                <Style TargetType="Button">
                    <Setter Property="Foreground" Value="Red"></Setter>
                    <Setter Property="FontSize" Value="20"></Setter>
                </Style>
            </Button.Style>
        </Button>

 </Canvas> 

 

運行效果

 

內部樣式有效範圍只在此控制項內,因此不能達到重用的效果,不推薦用此方法。

 

 局部樣式和全域樣式

局部樣式通常定義在UserControl.Resources中 它只能作用在此頁面中。

<UserControl.Resources>
        <Style x:Key="ButtonPartStyle" TargetType="Button">
            <Setter Property="Foreground" Value="Green"></Setter>
            <Setter Property="FontSize" Value="20"></Setter>
        </Style>
    </UserControl.Resources>

全域樣式通常定義在<Application.Resources>中可以在整個項目中引用

  <Application.Resources>
         <Style x:Name="ButtonWholeStyle" TargetType="Button">
            <Setter Property="Foreground" Value="Orange"></Setter>
            <Setter Property="FontSize" Value="26"></Setter>
        </Style>   

</Application.Resources>

樣式定義都是通過Style元素來指定,需要設定一個Key屬性,用來區分不同的樣式,並且通過指定TargetType來指定作用目標的類型。通過Setter來聲明目標的屬性。在頁面控制項中中通過StaticResource來以用此樣式。

控制項引用樣式

 <Button Style="{StaticResource ButtonPartStyle}" Content="Hello" Canvas.Left="50" Canvas.Top="40" Height="50" Width="150"/>

<Button Style="{StaticResource ButtonWholeStyle}" Content="World" Canvas.Left="50" Canvas.Top="100"  Height="50" Width="150"/>

運行效果

樣式重寫

定義了全域樣式和局部樣式後,樣式能被重寫。即內部樣式高於全域樣式和局部樣式。

<Canvas>
         <Button Style="{StaticResource ButtonPartStyle}" Content="Hello" Canvas.Left="50" Canvas.Top="20" Height="50" Width="150" Foreground="Blue"/>
        <Button Style="{StaticResource ButtonWholeStyle}" Height="50" Width="150" Content="World" Canvas.Left="50" Canvas.Top="100">
        </Button>
  </Canvas>

 效果

 

儘管在局部樣式中定義了Button的Foreground為Green,但是在內部樣式重寫後它顯示為Blue

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.