Silverlight实用窍门系列:71.Silverlight的Style

本文版权归作者和博客园共有,欢迎转载,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文链接:http://www.cnblogs.com/chengxingliang/archive/2012/07/02/2558112.html

 

  在Silverlight中的Style相当于Html中的Css,是其一个重要的组成部分。它可以声明于 UserControl.Resources也就是本页面资源内或者控件资源内,也可以声明于App.Xaml内或者 ResourceDictionary字典资源内。

  Style分为内联样式(控件本身样式)、页内级别样式(本身UserControl.Resources内样式)、应用程序域级别样式(App.Xaml内样式)、ResourceDictionary字典资源

  Style的作用顺序是就近原则,比如一个控件先使用自身样式,然后在本页面内的资源寻找具有指定Key的样式,如果找到就使用此样式,没有就找App.Xaml内样式,再没有就取ResourceDictionary字典资源内寻找。

  A.其声明为 <Style TargetType="ListBox" x:Key="listBox" BasedOn="{StaticResource fontColor}"></Style>

    TargetType:针对什么控件

    x:Key:此样式的样式名称Key,对于不需要x:Key指定的隐式样式,我们将会在下节讲述。

    BasedOn:继承于什么样式,注意继承的样式需要以BasedOn="{StaticResource fontColor}"指定上级Style的Key

 

  B.样式内部项以<Setter></Setter>标签声明,如<Setter Property="FontSize" Value="15"></Setter>

    Property:作用于什么属性

    Value:设置的值是什么?

同样其也可以把整个DataTemplate模板作为一个Setter的Value,然后设置针对属性值为ListBox的ItemTemplate属性。

 <Setter Property="ItemTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <StackPanel Orientation="Vertical" >
                            <StackPanel Orientation="Horizontal" Margin="5" Width="380">
                                <TextBlock Text="{Binding ArtName}" Margin="5 10 0 0"></TextBlock>
                                <TextBox Text="{Binding ArtContent}" Name="tbName" Margin="5"></TextBox>
                                <TextBox Text="{Binding ArtAuthor}" Margin="5"></TextBox>
                                <TextBlock Text="{Binding ArtUpdateTime}" Margin="5 10 0 0"></TextBlock>
                            </StackPanel>
                            <StackPanel Orientation="Horizontal"  Visibility="Collapsed">
                                <TextBox Text="{Binding ArtContent}" Width="280"></TextBox>
                            </StackPanel>
                        </StackPanel>
                    </DataTemplate>
                </Setter.Value>
            </Setter>

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。