刚刚接触WPF的开发,顿时对样式设计产生了兴趣。因为之前对CSS比较感兴趣,不难发现WPF的Style和CSS的模式很类似。下面我就根据自己初步的理解和CSS样式表对比做下总结,有理解不正确的地方还希望各位前辈指正。
(1)全局样式控制
影响的是整个项目的样式,我们可以在App.xaml文件里定义全局的样式(这里就类似于我们在一个web的项目中添加一个全局的CSS文件,然后在每个页面引用CSS样式):
<Application.Resources> <Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}"> <Setter Property="Background" Value="#3385ffff"></Setter> <Setter Property="Foreground" Value="#ffffffff"></Setter> </Style> <Application.Resources>
这里边定义了整个项目的Button标签的样式,背景色(Background)和前景色(Foreground)的值。这里发现颜色的值是’#‘ + 8位的十六进制数字而不是CSS里常用的‘#‘ + 6位十六进制数字。这里前两位是颜色的透明度,后面6位是正常的rgb颜色的表示。
(2)局部样式控制
我们还可以在窗体页面<Window.Resources>标签内添加控制本窗体的样式(不难发现就像在一个HTML的页面添加一个<style>...</style>的标签):
<Window.Resources> <Style TargetType="{x:Type Grid}"> <Setter Property="Background" Value="#EEE"></Setter> </Style> </Window.Resources>
这里定义了窗体内Grid的背景颜色样式。类似的还有UserControl页面的<UserControl.Resources>标签,下面就不一一列举了。
(3)个体级
我们也可以单独定义标签的样式,以Button标签为例:
<Button> <Button.Style> <Style TargetType="{x:Type Button}"> <Setter Property="Background" Value="#eeeeeeee"></Setter> </Style> </Button.Style> </Button>
定义了单独按钮的样式。(哈哈,这就像给HTML标签去定义它的style属性的值)
刚刚接触如有理解不正确的地方还望指正。
时间: 2024-10-09 20:11:54