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' #这种方式要把所 ...
随机推荐
- Javascript动态操作CSS总结
一.使用js操作css属性的写法 1.对于没有中划线的css属性一般直接使用style.属性名即可. 如:obj.style.margin,obj.style.width,obj.style.left ...
- install ubuntu on Android mobile phone
Android 是基于Linux内核的开源操作系统,主要用在移动设备上.当然同样是基于Linux内核的操作系统,现在支持的Android的智能手机理论来说都能运行基于Linux的操作系统,比如现在流行 ...
- 转载:案例用Excel对会员客户交易数据进行RFM分析
案例:用Excel对会员客户交易数据进行RFM分析 背景: 一个会员服务的企业,有近1年约1200个会员客户的收银数据.由于公司想针对不同 ...
- 杂乱所得之RPC【待整理】
在计算机的世界里,不仅有程序内部的通信,还需要程序之间的通信,这又包含两大类:同一台主机的程序之间的通信.不同主机的程序之间的通信. 同一台主机的程序之间的通信就是IPC,IPC(Inter-proc ...
- 使用3ds Max制作简单卧室
一.介绍 学习目标:熟练使用“标准基本体”和“扩展基本体”内的按钮来创建对象. 软件环境:3ds Max2015 二.实验步骤 1,启动3ds Max,使用“长方体”工具在场景中创建一个长方体作为空间 ...
- windows下docker使用及注意事项
1.windows container模式下,pull镜像会失败 no matching manifest for windows/amd64 in the manifest list entries ...
- Cross-Site Scripting XSS 跨站攻击全攻略 分类: 系统架构 2015-07-08 12:25 21人阅读 评论(2) 收藏
原文:http://a1pass.blog.163.com/blog/static/2971373220087295449497/ 题记:这是我在<黑客X档案>08年第5期发表的一篇文章, ...
- MQ遇到的错误(2035 或 2013认证错误)
java 连接 IBM MQ时出现 2035 或 2013认证错误的解决 com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013 ...
- win10 禁用Defender
cmd reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" /v "Dis ...
- tp5的学习
1.安装,官网下载 2.访问配置:http://localhost/App/public/ 3.入口文件,项目目录/public // 定义应用目录 define('APP_PATH', __DIR_ ...