一般简单的样式我们可以直接写在控件中

<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系列:样式的更多相关文章

  1. WPF系列教程——(一)仿TIM QQ界面 - 简书

    原文:WPF系列教程--(一)仿TIM QQ界面 - 简书 TIM QQ 我们先来看一下TIM QQ长什么样,整体可以将界面分为三个部分 TIM QQ 1. 准备 阅读本文假设你已经有XAML布局的基 ...

  2. WPF系列 —— 控件添加依赖属性(转)

    WPF系列 —— 控件添加依赖属性 依赖属性的概念,用途 ,如何新建与使用.本文用做一个自定义TimePicker控件来演示WPF的依赖属性的简单应用. 先上TimePicker的一个效果图. 概念 ...

  3. [WPF系列]-数据邦定之DataTemplate 对分层数据的支持

    到目前为止,我们仅讨论如何绑定和显示单个集合. 某些时候,您要绑定的集合包含其他集合. HierarchicalDataTemplate 类专用于 HeaderedItemsControl 类型以显示 ...

  4. [WPF系列]-数据邦定之DataTemplate 根据对象属性切换模板

      引言 书接上回[WPF系列-数据邦定之DataTemplate],本篇介绍如何根据属性切换模板(DataTemplate)   切换模板的两种方式:   使用DataTemplateSelecto ...

  5. [WPF系列]-TreeView的常用事项

    引言 项目经常会用Treeview来组织一些具有层级结构的数据,本节就将项目使用Treeview常见的问题作一个总结. DataBinding数据绑定 DataTemplate自定义 <Hier ...

  6. [WPF系列]从基础起步学习系列计划

    引言 WPF技术已经算不什么新技术,一搜一大把关于WPF基础甚至高级的内容.之前工作中一直使用winform所以一直没有深入学习WPF,这次因项目中使用了WPF技术来实现比较酷的展示界面.我在这里只是 ...

  7. 求助 WPF ListViewItem样式问题

    求助 WPF ListViewItem样式问题 .NET 开发 > Windows Presentation Foundation Вопрос 0 Нужно войти <Style ...

  8. WPF GroupBox 样式分享

    原文:WPF GroupBox 样式分享 默认样式 GroupBox 样式分享" title="WPF GroupBox 样式分享"> 添加样式后 GroupBox ...

  9. WPF DataGrid 样式设置

    隔行换色,鼠标单击,悬浮样式都有,其具体效果如图 1 所示. 图 1 WPF DataGrid 样式设置效果图 其中: 界面设计代码下所示 ? + 查看代码 1 2 3 4 5 6 7 8 9 10 ...

随机推荐

  1. Unity3D使用经验总结 编辑器扩展篇

    一个引擎,最重要的就是工具,工具除了提升开发速度,提供可视化操作环境以外,还带了容错功能. 它使得大家的工作局限在一定的范围内,比如一个变量的配置,或者是一些类型的选择. 使用编辑器,使得既使不太明白 ...

  2. Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境

    引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...

  3. Java线程:线程的交互

      一.线程交互的基础知识   SCJP所要求的线程交互知识点需要从java.lang.Object的类的三个方法来学习:    void notify()           唤醒在此对象监视器上等 ...

  4. Thinking in java中关于Exception的一道面试题.

    今天看到Thinking in Java中一个关于Exception的例子:最后看到有一篇总结的比较好的文章, 这里拿来记录下, 文章地址是:http://blog.csdn.net/salerzha ...

  5. Atitit 软件项目非法模块与功能的管理与  监狱管理的对比 原理与概论attilax总结

    Atitit 软件项目非法模块与功能的管理与  监狱管理的对比 原理与概论attilax总结 软件项目中的非法模块非法功能非法分子与人类中的非法分子很是相似,必须要建议不同的的约束管理标准化... 软 ...

  6. win2008 强制删除故障集群配置

    在正常删除Cluster 节点之后,再添加节点时,报“节点已经加入群集”,无法加入,注册表信息删除后可正常移除Cluster服务,如下: win2008故障转移群集无法退出节点时 删除注册表中这两个后 ...

  7. 23.实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty 和Staff。 具体要求如下: (1)Person类中的属性有:姓名name(String类型),地址address(String类型), 电话号码telphone(String类型)和电子邮件地址email(String类型); (2)Employee类中的属性有:办公室office(Stri

    package banking; public class Person { private String name; public String address; public String tel ...

  8. WPF自定义控件与样式(15)-终结篇 & 系列文章索引 & 源码共享

    系列文章目录  WPF自定义控件与样式(1)-矢量字体图标(iconfont) WPF自定义控件与样式(2)-自定义按钮FButton WPF自定义控件与样式(3)-TextBox & Ric ...

  9. CSS3入门之边框与背景

    CSS3入门之边框与背景 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !im ...

  10. Example of ApplicationContextAware in Spring--转

    原文地址:http://www.concretepage.com/spring/example_applicationcontextaware_spring In spring we can get ...