标签:
1.引言
样式(Style),主要是用来让元素或内容呈现一定外观的属性。WPF中的样式的作用,就像Web中的CSS一样,为界面上的元素定制外观,以提供更好的用户界面。在WPF应用程序中,通过控件的属性,我们也可以实现更改控件的外观。但是,这种方式局限性大、不灵活且不利于维护。例如:
<Grid> <Button Width="80" Height="30" FontSize="16" FontWeight="Bold" Margin="140,32,78,139">Button1</Button> <Button Width="80" Height="30" FontSize="16" FontWeight="Bold" Margin="38,86,180,84">Button2</Button> <Button Width="80" Height="30" FontSize="16" FontWeight="Bold" Margin="38,32,180,139">Button3</Button> </Grid>
上面只有三个按钮,倘若数十个按钮、或者整个应用程序中所有的按钮,我们都这样给它们编写相同的属性,无疑很麻烦且不利维护。如果我们将上述Button的属性归纳起来,写到一段样式中,为按钮指定该样式(甚至用元素类型样式时,都不需要指定按钮样式),所有按钮就具有统一样式和外观了。如果想修改按钮外观,我们只需要改一下样式代码即可,所有按钮外观都会随之变化。
2.怎样使用样式
样式的使用有多种方法,如内联样式(定义在元素内部)、已命名样式(为样式命名,使用时通过名称引用)、元素类型样式(为一种类型的元素,指定一种样式)等等。
3.内联样式
内联样式,是在元素定义时,在元素内部通过拓展属性Style来定义样式。
<Button> <Button.Style> <Style> <!--字体--> <Setter Property="Button.FontSize" Value="16"></Setter> <!--宽度--> <Setter Property="Button.Width" Value="80"></Setter> <!--高度--> <Setter Property="Button.Height" Value="40"></Setter> <!--文本--> <Setter Property="Button.Content" Value="Button"></Setter> </Style> </Button.Style> </Button>
内联样式的缺点在于,如果想为多个元素指定同一种样式,不得不在每个元素内部都编写同一种样式,这样不但耗费人力,并且后期维护性差。就像网页中的内联CSS一样。所以,一般我们将样式放到资源中,在元素定义时,为其指定一个样式(见下文 已命名样式);或者在资源中,为某一类型的元素指定一个样式(见下文 元素类型样式)。
4.已命名样式
将相同的内敛样式归纳起来,放入资源中,构成一个样式,并为它起一个名字。这样,就可以通过名字为元素指定该样式。
<Window.Resources> <Style x:Key="Style1"> <Setter Property="Button.FontSize" Value="16"></Setter> <Setter Property="Button.Width" Value="180"></Setter> <Setter Property="Button.Height" Value="30"></Setter> </Style> </Window.Resources> <Grid> <Button Style="{StaticResource Style1}" Margin="23,32,101,86" Height="Auto" Width="Auto">Button1</Button> </Grid>
指定目标类型(TargetType)
如果给样式指定一种类型,则属性中的名字可以去掉,上述代码可改成:
标签:
原文地址:http://www.cnblogs.com/happinesshappy/p/4606242.html