XAML中使用统一界面风格

之前在界面上写多个控件时,对于字体、对齐方式、高度、宽度都是独立编写。类似下面这样:

<Button FontSize="18" Width="30" Margin="0,0,0,0"/>

<Button FontSize="18" Width="30" Margin="100,0,0,0"/>

其实很多相同类型的控件,放置在界面上时,都是使用统一的风格的,也就是说很多的Style是一样的,只是位置不同(当然,实现的功能也不一样)。

之前一直考虑写个库,在库里面写好默认风格。只在需要调整时,才设置相应的属性的值。

 

今天忽然发现,这根本不需要,微软早已经考虑到这点,可以把相同的属性独立出来,在Resources中写好(这很像CSS)。

例如,要将某个Grid下的Button控件使用统一的风格,可以这么写:

<Grid.Resources>

        <Style TargetType="Button">  <!-所有的Button都将使用以下属性->

               <Setter Property="FontSize" Value="18"/>

               <Setter Property="Width" Value="30"/>

         </Style>

</Grid.Resource>

<Button Margin="0,0,0,0"/>

<Button Margin="100,0,0,0"/>

 

这样,一方面可以减少代码量。另一方面,如果需要修改风格,只要在一个地方去修改就可以了。

不过这个功能实际上跟CSS还是略有差别,就是例如在父级设置了某几个属性,在子级设置另外几个属性的值,父级的属性会被失效(父级与子级设置的是不同的属性)。当然,在控件级设置属性是不会使父级属性失效的。

例如:

层次结构是:Window → Grid1 → Grid2 → 最终控件

在Grid1设置属性a、b,如果在Grid2设置属性c、d,属性a、b也会变成默认值,但不设置Grid2,在最终控件处设置c、d,是不会让a、b失效的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值