WPF系列:样式
一般简单的样式我们可以直接写在控件中
<Button Canvas.Left="20" Canvas.Top="30" Width="100" Height="120" Content="A"/>
也可以通过Style属性定义该系列控件的样式
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Green"></Setter>
<Setter Property="FontSize" Value="24" ></Setter>
</Style>
然后通过键值,可以赋予该系列某一类型特定的样式,这个有点像CSS里的class
<Style x:Key="ButtonMenu">
<Setter Property="Button.Background" Value="Red"></Setter>
<Setter Property="Button.Width" Value="100"></Setter>
<Setter Property="Button.Height" Value="100"></Setter>
<Setter Property="Button.FontSize" Value="24" ></Setter>
</Style>
WPF中的样式还可以通过BasedOn属性继承样式
<Style x:Key="ButtonTitle" BasedOn="{StaticResource ButtonMenu}" TargetType="Button">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush>
<GradientStop Offset="0.2" Color="LightBlue"></GradientStop>
<GradientStop Offset="0.5" Color="Blue"></GradientStop>
<GradientStop Offset="0.9" Color="DarkBlue"></GradientStop>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="Button.Width" Value="100"></Setter>
<Setter Property="Button.Height" Value="100"></Setter>
</Style>
最后把所有代码合在一起
<Canvas>
<Canvas.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Green"></Setter>
<Setter Property="FontSize" Value="24" ></Setter>
</Style>
<Style x:Key="ButtonMenu">
<Setter Property="Button.Background" Value="Red"></Setter>
<Setter Property="Button.Width" Value="100"></Setter>
<Setter Property="Button.Height" Value="100"></Setter>
<Setter Property="Button.FontSize" Value="24" ></Setter>
</Style>
<Style x:Key="ButtonTitle" BasedOn="{StaticResource ButtonMenu}" TargetType="Button">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush>
<GradientStop Offset="0.2" Color="LightBlue"></GradientStop>
<GradientStop Offset="0.5" Color="Blue"></GradientStop>
<GradientStop Offset="0.9" Color="DarkBlue"></GradientStop>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
</Canvas.Resources>
<Button Canvas.Left="20" Canvas.Top="30" Width="100" Height="120" Content="A"/>
<Button Canvas.Left="150" Canvas.Top="30" Style="{StaticResource ButtonMenu}" Content="B" />
<Button Canvas.Left="280" Canvas.Top="30" Style="{StaticResource ButtonTitle}" Content="C" />
</Canvas>
WPF系列:样式的更多相关文章
- WPF系列教程——(一)仿TIM QQ界面 - 简书
原文:WPF系列教程--(一)仿TIM QQ界面 - 简书 TIM QQ 我们先来看一下TIM QQ长什么样,整体可以将界面分为三个部分 TIM QQ 1. 准备 阅读本文假设你已经有XAML布局的基 ...
- WPF系列 —— 控件添加依赖属性(转)
WPF系列 —— 控件添加依赖属性 依赖属性的概念,用途 ,如何新建与使用.本文用做一个自定义TimePicker控件来演示WPF的依赖属性的简单应用. 先上TimePicker的一个效果图. 概念 ...
- [WPF系列]-数据邦定之DataTemplate 对分层数据的支持
到目前为止,我们仅讨论如何绑定和显示单个集合. 某些时候,您要绑定的集合包含其他集合. HierarchicalDataTemplate 类专用于 HeaderedItemsControl 类型以显示 ...
- [WPF系列]-数据邦定之DataTemplate 根据对象属性切换模板
引言 书接上回[WPF系列-数据邦定之DataTemplate],本篇介绍如何根据属性切换模板(DataTemplate) 切换模板的两种方式: 使用DataTemplateSelecto ...
- [WPF系列]-TreeView的常用事项
引言 项目经常会用Treeview来组织一些具有层级结构的数据,本节就将项目使用Treeview常见的问题作一个总结. DataBinding数据绑定 DataTemplate自定义 <Hier ...
- [WPF系列]从基础起步学习系列计划
引言 WPF技术已经算不什么新技术,一搜一大把关于WPF基础甚至高级的内容.之前工作中一直使用winform所以一直没有深入学习WPF,这次因项目中使用了WPF技术来实现比较酷的展示界面.我在这里只是 ...
- 求助 WPF ListViewItem样式问题
求助 WPF ListViewItem样式问题 .NET 开发 > Windows Presentation Foundation Вопрос 0 Нужно войти <Style ...
- WPF GroupBox 样式分享
原文:WPF GroupBox 样式分享 默认样式 GroupBox 样式分享" title="WPF GroupBox 样式分享"> 添加样式后 GroupBox ...
- WPF DataGrid 样式设置
隔行换色,鼠标单击,悬浮样式都有,其具体效果如图 1 所示. 图 1 WPF DataGrid 样式设置效果图 其中: 界面设计代码下所示 ? + 查看代码 1 2 3 4 5 6 7 8 9 10 ...
随机推荐
- Wix 安装部署教程(十一) ---QuickWix
这次发布的是这两天做的一个WIX工具QuickWIX,主要解决两个问题点1.对大文件快速生成wix标签(files,Directories,ComponentRef):2.比较前后两次工程的差异.大的 ...
- 关于Web开发里并发、同步、异步以及事件驱动编程的相关技术
一.开篇语 我的上篇文章<关于如何提供Web服务端并发效率的异步编程技术>又成为了博客园里“编辑推荐”的文章,这是对我写博客很大的鼓励,也许是被推荐的原因很多童鞋在这篇文章里发表了评论,有 ...
- html表格相关
<html> <head> <style type="text/css"> thead {color:green} tbody {color:b ...
- 在ThoughtWorks工作这几年我学到了什么?
不知不觉,从2012年5月1日加入ThoughtWorks到现在,已经3年有余了.时间过得很快,这三年多我干了很多事情,但仔细想想也没有什么特别值得一提的.在一个公司呆久了总觉得很多事情是理所当然的, ...
- MySQL模糊查询(like)时区分大小写
问题说明:通过上面的语句,你会发现MySQL的like查询是不区分大小写的,因为我的失误,把Joe写成了joe才发现了这个东东吧.但是,有时候,我们需要区分大小写的是,该怎么办呢?解决方法如下: 方法 ...
- java.sql.SQLException: JZ00L
出现, java.sql.SQLException: JZ00L: 登录失败.检查与此异常现象有关的 SQL 警告以获得失败原因. at com.sybase.jdbc3.jdbc.ErrorMess ...
- swift 加载 storyboard 里的UIViewController
let storyBoard:UIStoryboard! = UIStoryboard(name: "Main", bundle: nil) let deskVC:DeskView ...
- javascript事件监听与事件委托
事件监听与事件委托 在js中,常用到element.addEventListener()来进行事件的监听.但是当页面中存在大量需要绑定事件的元素时,这种方式可能会带来性能影响.此时,我们可以用事件 ...
- Atitit RSA非对称加密原理与解决方案
Atitit RSA非对称加密原理与解决方案 1.1. 一.一点历史 1 1.2. 八.加密和解密 2 1.3. 二.基于RSA的消息传递机制 3 1.4. 基于rsa的授权验证机器码 4 1.5. ...
- ToString()的各种用法(大全)
常用例子: string str = ""; str = .ToString("N"); //生成 12,3456.00 str = .ToString(&qu ...