WPF 样式(Style)初体验 (一) 作用域

  刚刚接触WPF的开发,顿时对样式设计产生了兴趣。因为之前对CSS比较感兴趣,不难发现WPF的Style和CSS的模式很类似。下面我就根据自己初步的理解和CSS样式表对比做下总结,有理解不正确的地方还希望各位前辈指正。

    (1)全局样式控制

影响的是整个项目的样式,我们可以在App.xaml文件里定义全局的样式(这里就类似于我们在一个web的项目中添加一个全局的CSS文件,然后在每个页面引用CSS样式):

<Application.Resources>
        <Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
            <Setter Property="Background" Value="#3385ffff"></Setter>
            <Setter Property="Foreground" Value="#ffffffff"></Setter>
         </Style>
<Application.Resources>

这里边定义了整个项目的Button标签的样式,背景色(Background)和前景色(Foreground)的值。这里发现颜色的值是’#‘ + 8位的十六进制数字而不是CSS里常用的‘#‘ + 6位十六进制数字。这里前两位是颜色的透明度,后面6位是正常的rgb颜色的表示。

    (2)局部样式控制

我们还可以在窗体页面<Window.Resources>标签内添加控制本窗体的样式(不难发现就像在一个HTML的页面添加一个<style>...</style>的标签):

<Window.Resources>
        <Style  TargetType="{x:Type Grid}">
            <Setter Property="Background" Value="#EEE"></Setter>
        </Style>
</Window.Resources>    

这里定义了窗体内Grid的背景颜色样式。类似的还有UserControl页面的<UserControl.Resources>标签,下面就不一一列举了。

     (3)个体级

我们也可以单独定义标签的样式,以Button标签为例:

<Button>
                <Button.Style>
                    <Style TargetType="{x:Type Button}">
                        <Setter Property="Background" Value="#eeeeeeee"></Setter>
                    </Style>
                </Button.Style>
</Button>

定义了单独按钮的样式。(哈哈,这就像给HTML标签去定义它的style属性的值)

刚刚接触如有理解不正确的地方还望指正。

    

时间: 2024-10-09 20:11:54

WPF 样式(Style)初体验 (一) 作用域的相关文章

WPF 样式(定义样式、引用样式、样式作用域、Trigger触发器)

1.定义 资源字典 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">   <RadialGradientBrush x:Key="mybrush">   <GradientStop

【尝新】微信小程序初体验

文档地址:https://mp.weixin.qq.com/debug/wxadoc/dev/?t=1474644089434 根据文档地址中下载微信开发工具后,按照文档指引可以创建一个快速体验的小demo ,样例中的文件说明如下: 小程序包含一个描述整体程序的 app 和多个描述各自页面的 page. 一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下: app.js 是 小程序逻辑 app.json 是 小程序公共设置 app.wxss 否 小程序公共样式表 一个小程序页面由四个文

ASP.NET MVC学习---(五)MVC初体验

经过之前n多的铺垫 我们已经大概了解了这个姓m名vc的家伙了 那么今天我们就来体验一把 怎么体验呢? 就来做一个小例子吧~ mvc增删改查的例子 数据库还是之前我们的老朋友 关系图: 表中的数据已填好 T_Users 将就着用着吧,哈哈 现在要求对T_Users表进行增删改查 开搞~ 回到之前新建的mvc项目 在Controllers文件夹下新建一个名为Home的空控制器 当浏览器请求Home下面的Index方法的时候返回什么? 当然是主页面啦 这里我们的主页面就是显示T_Users数据列表 代

&quot;xaml+cs&quot;桌面客户端跨平台初体验

"Xaml+C#"桌面客户端跨平台初体验 前言 ??随着 .Net 5的到来,微软在 .Net 跨平台路上又开始了一个更高的起点.回顾.Net Core近几年的成果,可谓是让.Net重生了一次. ??Asp .Net Core跨平台解决了Windows服务器昂贵的费用和不能长时间待机的问题,让Asp程序能够跑在Linux甚至Mac上.从博客园里.Net分类可以看到,每天都可以涌现大批Asp .Net Core的技术文章,越来越多的开发者或者公司开始尝试这个船新的跨平台框架. ??然鹅,

Xamarin.iOS开发初体验

Xamarin是一个跨平台开发框架,这一框架的特点是支持用C#开发IOS.Android.Windows Phone和Mac应用,这套框架底层是用Mono实现的. Mono是一款基于.NET框架的开源工程,包含C#语言编译器.CLR运行时和一组类库,能运行于Windows.Linux.Unix.Mac OS和Solaris.对于.NET程序员来说,Xamarin是走向安卓.iOS.Mac跨平台开发的神器,不仅能用熟悉的C#来开发,还能使用Visual Studio作为IDE.本文内容是Xamar

百度EChart3初体验

由于项目需要在首页搞一个订单数量的走势图,经过多方查找,体验,感觉ECharts不错,封装的很细,我们只需要看自己需要那种类型的图表,搞定好自己的json数据就OK.至于说如何体现出来,官网的教程很详细.大家可以去看下.大概了解下用法就OK. 百度ECharts 3:http://echarts.baidu.com/index.html 其实还有很多,可以到官网中找. 下面是我进行操作的步奏,大家可以看下,做个参考. ECharts初体验—01... 需要到官网下载最新的版本的js文件(完整版)

Microsoft IoT Starter Kit 开发初体验

1. 引子 今年6月底,在上海举办的中国国际物联网大会上,微软中国面向中国物联网社区推出了Microsoft IoT Starter Kit ,并且免费开放1000套的申请.申请地址为:http://aka.ms/iotkits,目前仍然有效.当时一开放申请,我就在线填写了申请表,接下来就是长长的等待.相信很多朋友都是一样,在经过几个月的等待之后,终于拿到了这个开发套件,而有些朋友估计还在等待中.因为官方是一个月处理并邮寄一批,速度不是很快.但是,在经过了一段时间使用以后,我可以说,如果朋友们期

[开发笔记]-Jqplot图表初体验

文章内容为初次使用Jqplot图表插件的测试代码,仅供参考. <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <link href="js/jqpl

Node.js 网页瘸腿爬虫初体验

延续上一篇,想把自己博客的文档标题利用Node.js的request全提取出来,于是有了下面的初哥爬虫,水平有限,这只爬虫目前还有点瘸腿,请看官你指正了. // 内置http模块,提供了http服务器和客户端功能 var http=require("http"); // 内置文件处理模块 var fs=require('fs'); // 创建一个将流数据写入文件的WriteStream对象 var outstream=fs.createWriteStream('./1.txt'); /