1. <Style x:Key="BasedStyle" BasedOn="{x:Null}" TargetType="{x:Type Control}">
  2. <Setter Property="FontFamily" Value="Microsoft YaHei" />
  3. <Setter Property="FontSize" Value="12" />
  4. <Setter Property="Foreground" Value="White" />
  5. <Setter Property="FocusVisualStyle" Value="{x:Null}" />
  6. </Style>

All Style Based

  1. <!--引用 BasedStyle-->
  2. <ResourceDictionary.MergedDictionaries>
  3. <ResourceDictionary Source="BasedStyle.xaml" />
  4. </ResourceDictionary.MergedDictionaries>
  5.  
  6. <!--示例控件Style Based代码 以下示例为Button-->
  7. <Style x:Key="ButtonBaseBaseStyle" BasedOn="{StaticResource BasedStyle}" TargetType="{x:Type ButtonBase}">
  8. <Setter Property="Height" Value="45" />
  9. <Setter Property="Foreground" Value="{DynamicResource ButtonText}" />
  10. <Setter Property="Padding" Value="0" />
  11. <Setter Property="Margin" Value="0" />
  12. <Setter Property="BorderThickness" Value="1" />
  13. <Setter Property="HorizontalAlignment" Value="Center" />
  14. <Setter Property="VerticalAlignment" Value="Center" />
  15. <Setter Property="HorizontalContentAlignment" Value="Center" />
  16. <Setter Property="VerticalContentAlignment" Value="Center" />
  17. </Style>
  18.  
  19. <Style x:Key="ButtonBaseStyle" BasedOn="{StaticResource ButtonBaseBaseStyle}" TargetType="{x:Type Button}">
  20. <Setter Property="Template">
  21. <Setter.Value>
  22. <ControlTemplate TargetType="{x:Type Button}">
  23. <Grid>
  24. <Border x:Name="border" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" />
  25. <ContentPresenter Margin="0" HorizontalAlignment="Center" VerticalAlignment="Center" RecognizesAccessKey="true" />
  26.  
  27. <Rectangle x:Name="EnabledLayer" Fill="#4CFFFFFF" Visibility="Collapsed" />
  28. </Grid>
  29. <ControlTemplate.Triggers>
  30. <Trigger Property="IsMouseOver" Value="true">
  31. <Setter Property="Background" Value="{DynamicResource ButtonBackgroundHover}" />
  32. </Trigger>
  33. <Trigger Property="IsPressed" Value="true">
  34. <Setter Property="Background" Value="{StaticResource ButtonBackgroundPressed}" />
  35. </Trigger>
  36. <Trigger Property="IsEnabled" Value="false">
  37. <Setter TargetName="EnabledLayer" Property="Visibility" Value="Visible" />
  38. </Trigger>
  39. </ControlTemplate.Triggers>
  40. </ControlTemplate>
  41. </Setter.Value>
  42. </Setter>
  43. </Style>
  44.  
  45. <!--示例控件扩展 Style-->
  46. <Style x:Key="Success" BasedOn="{StaticResource ButtonBaseStyle}" TargetType="{x:Type Button}">
  47. <Setter Property="Background" Value="{DynamicResource ButtonBackground-Success}" />
  48. <Setter Property="BorderBrush" Value="{DynamicResource ButtonBorder-Success}" />
  49. <Style.Triggers>
  50. <Trigger Property="IsMouseOver" Value="true">
  51. <Setter Property="Background" Value="#449d44" />
  52. <Setter Property="BorderBrush" Value="#398439" />
  53. </Trigger>
  54. </Style.Triggers>
  55. </Style>

示例Style

引用

https://msdn.microsoft.com/zh-cn/library/system.windows.style.basedon(v=vs.110).aspx

https://github.com/ptddqr/bootstrap-wpf-style

总结

使用BasedOn的主要原因是涉及同类控件扩展多,例如不同颜色。

再来就是为了统一基础样式,例如字体大小、样式、颜色,外边框以及水平垂直对称的方式。

WPF's Style BasedOn的更多相关文章

  1. [WPF] 为Style 里的button添加鼠标点击响应事件

    一个TabControl, 用的是PagedTabControl style, 在style中有个button, button在style里已经写了click事件,但是现在还需要加上一段功能,就是在响 ...

  2. WPF 之 style文件的引用

    总结一下WPF中Style样式的引用方法. 一.内联样式: 直接设置控件的Height.Width.Foreground.HorizontalAlignment.VerticalAlignment等属 ...

  3. WPF的Style的TargetType不同写法的异同

    原文:WPF的Style的TargetType不同写法的异同 <Style TargetType="TextBlock"> <Setter Property=&q ...

  4. WPF中Style文件的引用——使用xaml代码或者C#代码动态加载

    原文:WPF中Style文件的引用--使用xaml代码或者C#代码动态加载 WPF中控件拥有很多依赖属性(Dependency Property),我们可以通过编写自定义Style文件来控制控件的外观 ...

  5. WPF 中style文件的引用

    原文:WPF 中style文件的引用 总结一下WPF中Style样式的引用方法: 一,内联样式: 直接设置控件的Height.Width.Foreground.HorizontalAlignment. ...

  6. WPF整理-Style

    "Consistency in a user interface is an important trait; there are many facets of consistency,   ...

  7. wpf 的style

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...

  8. WPF系列 Style

        参考 WPF: Customize your Application with Styles and Control Templates (Part 2 of 2)

  9. wpf 将Style应用到 ListView 中的 ListViewItem 元素

    例: 为每个条目元素设置右键菜单 1. 新建右键菜单元素和样式元素 注意: 同时设置样式元素的 TargetType 属性和 x:Key 属性, 将样式元素限定为应用于 ListViewItem 类型 ...

随机推荐

  1. 就这么漂来漂去---一个毕业三个月的java程序员的裸辞风波

    注:这并不是一篇技术文章,而是记录了我这几个月经历的入职,裸辞,找工作的心路历程,简单介绍一个博主的情况,我是16年毕业生,校招进了一家北京的公司,java开发,和很多年轻人一样,干了一段时间,我发现 ...

  2. slf4j中的MDC

    slf4j中MDC是什么鬼 slf4j除了trace.debug.info.warn.error这几个日志接口外,还可以配合MDC将数据写入日志.换句话说MDC也是用来记录日志的,但它的使用方式与使用 ...

  3. 【腾讯Bugly干货分享】移动App入侵与逆向破解技术-iOS篇

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e0acc896e9ebb6865f321 如果您有耐心看完这篇文章,您将懂 ...

  4. hadoop 笔记(zookeeper)

    1.安装 需要提前安装java环境,本文下载zookeeper-3.3.6.tar.gz包. 1.1 tar -zxvf zookeeper-3.3.6.tar.gz 1.2 修改conf中的zoo_ ...

  5. 《深入理解Java虚拟机》类文件结构

    上节学习回顾 在上一节当中,主要以自己的工作环境简单地介绍了一下自身的一些调优或者说是故障处理经验.所谓百变不离其宗,这个宗就是我们解决问题的思路了. 本节学习重点 在前面几章,我们宏观地了解了虚拟机 ...

  6. Python 黑帽编程大纲(变化中)

    Python 黑帽编程大纲(预览版) 教程说明: 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and Defense with Pytho ...

  7. [DeviceOne开发]-土地销售项目源码分享

    一.简介 这个是一个真实项目开源,虽然不是很花哨,但是中规中矩,小细节处理的也很好,非常值得参考和借鉴.里面的数据都缓存到本地,可以离线运行,但是调整一下代码,马上就可以和服务端完全对接.后续会有详细 ...

  8. ASP.NET MVC防范CSRF最佳实践

    XSS与CSRF 哈哈,有点标题党,但我保证这篇文章跟别的不太一样. 我认为,网站安全的基础有三块: 防范中间人攻击 防范XSS 防范CSRF 注意,我讲的是基础,如果更高级点的话可以考虑防范机器人刷 ...

  9. AngularJs之五

    一:angularJs的事件. 1.ng-click指令定义了AngularJS点击事件. <div ng-app="myapp" ng-controller="m ...

  10. MSSQL 基础语句笔记

    建库 CREATE DATABASE 数据库名 ON[PRIMARY] --默认属于PRIMARY主文件组,可省略 ( NAME='', --主数据文件的逻辑名 名称 FILEAME='', --主数 ...