WPF设置样式的几种方式
第一种方式是直接使用Setter来进行,可以对Background等进行设置。
<Window.Resources>
<Style TargetType="Button">
<Setter Property="Background" Value="Red"/>
</Style></Window.Resources>
第二种是直接将比较复杂一点的Style放置到Window.Resources中:

<Window.Resources>
<LinearGradientBrush x:Key="CheckedState" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#FFE7E1E1" Offset="0"/>
<GradientStop Color="black" Offset="1"/>
<GradientStop Color="gray" Offset="0.581"/>
</LinearGradientBrush>
</Window.Resources>

使用的时候,直接利用 Background="{StaticResource CheckedState}"即可。
第三种是利用Template方式来进行,这种可以进行比较复杂的样式制作:

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication4.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">
<Window.Resources>
<LinearGradientBrush x:Key="CheckedState" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#FFE7E1E1" Offset="0"/>
<GradientStop Color="black" Offset="1"/>
<GradientStop Color="gray" Offset="0.581"/>
</LinearGradientBrush> <LinearGradientBrush x:Key="UnCheckedState" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#FFE7E1E1" Offset="0"/>
<GradientStop Color="gray" Offset="1"/>
<GradientStop Color="gray" Offset="0.581"/>
</LinearGradientBrush> <Style TargetType="TabItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Grid>
<Border Name="Border" BorderThickness="1" BorderBrush="Gray" Background="{StaticResource UnCheckedState}" Width="80" Height="25" Margin="0,0,1,0" CornerRadius="4,4,0,0">
<Grid>
<ContentPresenter x:Name="ContentSite"
VerticalAlignment="Center"
HorizontalAlignment="Center"
ContentSource="Header"
Margin="12,2,12,2"
RecognizesAccessKey="True" />
</Grid>
</Border>
</Grid> <ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Panel.ZIndex" Value="100" />
<Setter TargetName="Border" Property="Background" Value="{StaticResource CheckedState}" />
<Setter TargetName="Border" Property="BorderThickness" Value="1,1,1,0" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackgroundBrush}" />
<Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DisabledBorderBrush}" />
<Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}" />
</Trigger>
</ControlTemplate.Triggers> </ControlTemplate> </Setter.Value>
</Setter>
</Style> </Window.Resources> <Grid x:Name="LayoutRoot">
<TabControl Margin="0,0,0,116">
<TabControl.Resources>
<Style TargetType="TabPanel">
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
</TabControl.Resources>
<TabItem Header="TabItem" >TabItem</TabItem>
<TabItem Header="My Item">My Item</TabItem>
<TabItem Header="My Database">My Database</TabItem>
<TabItem Header="TabItem"></TabItem>
<TabItem Header="TabItem"></TabItem>
<TabItem Header="TabItem"></TabItem>
</TabControl>
</Grid>
</Window>

当然,制作出来的效果也就是好看一些,显示效果如下:
WPF设置样式的几种方式的更多相关文章
- TextView设置样式的3种方式
1,直接在<TextView>中设置 <TextView android:id="@+id/tv_badge_view_count" android:layout ...
- 原生js更改css样式的两种方式
下面我给大家介绍的是原生js更改CSS样式的两种方式: 1通过在javascript代码中的node.style.cssText="css表达式1:css表达式2:css表达式3 &quo ...
- 【javascript】原生js更改css样式的两种方式
下面我给大家介绍的是原生js更改CSS样式的两种方式: 1通过在javascript代码中的node.style.cssText="css表达式1:css表达式2:css表达式3 &quo ...
- javascript总结40:DOM中操作样式的两种方式
1 DOM中操作样式的两种方式 1 通过元素的style属性 注意: 通过style属性设置样式时,css中要写单位的属性,在js代码中也要加单位 //html <div id="bo ...
- 我给女朋友讲编程CSS系列(1) –添加CSS样式的3种方式及样式表的优先权
如果说,原生态就是美,那么,我们就没有必要穿衣打扮. 网页是什么? 说白了,网页就是一堆[html标签]有序的搭配,让[CSS属性值]整整容,请[Javascript语言]处理一下事件. 一个人的整容 ...
- 【iOS开发-72】设置状态栏的两种方式、程序生命周期以及更好地理解几大类(对象)之间的关系
(1)设置状态栏的2种方式 --第一种方式就是我们在控制器中设置,系统默认就是交给视图控制器去管理的,这样不同视图控制器能够自己定义不同的状态栏例如以下: -(BOOL)prefersStatusBa ...
- HTML 引用Css样式的四种方式
不才,只知道HTML引用CSS样式有四种方式,内部引用和外部引用各两种,因为老是忘记细节,记下了随时翻阅亦可方便如我般的初学者 内部引用方式1: 直接在标签内用 style 引用,如: <div ...
- python 中增加css样式的三种方式
增加css样式的三种方式: <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- flask框架----设置配置文件的几种方式
设置配置文件的几种方式 ==========方式一:============ app.config['SESSION_COOKIE_NAME'] = 'session_lvning' #这种方式要把所 ...
随机推荐
- Git 创建操作
在本章中,我们将看到如何创建一个远程Git仓库,从现在开始,我们将会把它作为Git服务器.我们需要一个的Git服务器允许团队协作. 创建新用户 # add new group [root@CentOS ...
- vbs中的"WScript.Network"[属性与方法]
属性ComputerName 计算机名UserDomain 所属局域网域的域名UserName ...
- 【Java集合源码剖析】Hashtable源码剖析
转载出处:http://blog.csdn.net/ns_code/article/details/36191279 Hashtable简介 Hashtable同样是基于哈希表实现的,同样每个元素是一 ...
- 客户端Cookie读取操作
function SetCookie(name,value) { //此 cookie 将被保存 30 天(可活动配置) var Days = 30; var exp = new Date(); ex ...
- 【转】Mac使用apt-get
和Linux系统不同的是,Mac系统默认是不带有apt-get软件包工具的,所以要想在Mac上使用上方便的apt-get就需要自己来安装它. 这里我们需要借助一个强大的工具-fink. 首先我们需要下 ...
- [kafka] 005_kafka_Java_API
1.生产者Producer 1)添加依赖 <dependency> <groupId>org.apache.kafka</groupId> <artifact ...
- [kafka] 002_kafka_相关术语详细解析
参考: http://www.cnblogs.com/likehua/p/3999538.html http://kafka.apache.org/documentation.html#getting ...
- UDP丢包原因
一.主要丢包原因 1.接收端处理时间过长导致丢包:调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失.对于这种情况可以修改接收 ...
- 自然语言交流系统 phxnet团队 创新实训 个人博客 (九)
情感倾向可认为是主体对某一客体主观存在的内心喜恶,内在评价的一种倾向.它由两个方面来衡量:一个情感倾向方向,一个是情感倾向度. 情感倾向方向也称为情感极性.在微博中,可以理解为用户对某客体表达自身观点 ...
- 浅谈main(),int main(),void main(),int main(void)四者之间的区别
1,main():相当于 int main() 2,int main():int 是main() 函数的返回类型.这表明main()函数返回的值是整数且授受任何数量的参数. 3,void main() ...