---some words----

1.Alpha:透明度

2.Argb :Alpha red green blue

3.brush: [brʌʃ]    刷子,笔画,笔刷

4.fore 前头

5.Foreground 前景色

6.SolidColorBrush:单色笔刷

7.LinearGradientBrush :线性渐变笔刷

8.Linear:直线的,线性的

9.Gradient  梯度,变化,倾斜

---  the end  ----

一:Color结构体

c#中用Color这个结构体来定义普通的颜色。

Color color = Color.FromArgb(255,0,0,0);

它是用Alpha通道,红色通道,绿色通道,蓝色通道描述颜色。第一个参数是透明度从0-255  透明-不透明

二:Colors类

c#中用Colors这个类 实现一组预定义的颜色。(就是帮你设置了一些基础的颜色,你直接拿来用就行)

Color color = Colors.Black;

三:Brush类

在写UWP的时候,我们习惯用xaml写样式,在给控件的Background,Foreground这些属性赋值的时候,都是直接写颜色的名字,其实xaml在最后会将我们的字符串转化成对应颜色的笔刷。

<Grid Background="Black"
    Name="TestGrid">
</Grid>

这些控件的颜色属性的类型是Brush类型。

四:几种笔刷

SolidColorBrush:纯色笔刷

LinearGradientBrush::线性渐变笔刷

ImageBrush:图像笔刷

这几个类都是Bursh的子类。

这里就介绍第一种:

在后台用代码将上面的Grid的背景颜色改成白色。

 //两种方法实现
TestGrid.Background = new SolidColorBrush(Color.FromArgb(255,255,255,255));
TestGrid.Background = new SolidColorBrush(Colors.White);

 

五:转换

虽然Xaml很方便,但是还是免不了有一些需求,比如要你在后台更改控件的颜色,而你拿到的颜色是#ffffffff 16进制这样的。。既不是Color也不是Brush,想要在后台改颜色就不能像xaml那样写了。你不能将string类型赋值给brush类型。

TestGrid.Background = "#ffffffff";   //这种方法是错误的

我们需要写一个类,用来将string类型的颜色转换成Color类型。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.UI; namespace One.Converter
{
public class ColorConverter
{
/// <summary>
/// 将16进制的颜色转为成Color类型
/// </summary>
/// <param name="stringColor"></param>
/// <returns></returns>
public Color StringToColor(string stringColor)
{
string src = stringColor;
//因为有些颜色是rgb模式的,没有透明度
if (src.Length == )
{
return Color.FromArgb(,
Byte.Parse(src.Substring(, ), System.Globalization.NumberStyles.HexNumber),
Byte.Parse(src.Substring(, ), System.Globalization.NumberStyles.HexNumber),
Byte.Parse(src.Substring(, ), System.Globalization.NumberStyles.HexNumber));
}
//argb
else if(src.Length==)
{
return Color.FromArgb(
Byte.Parse(src.Substring(, ), System.Globalization.NumberStyles.HexNumber),
Byte.Parse(src.Substring(, ), System.Globalization.NumberStyles.HexNumber),
Byte.Parse(src.Substring(, ), System.Globalization.NumberStyles.HexNumber),
Byte.Parse(src.Substring(, ), System.Globalization.NumberStyles.HexNumber));
}
throw new ArgumentException("Cannot parse the color"); }
}
}

微软自己写的Converter地址:https://github.com/Microsoft/Windows-universal-samples/blob/master/Samples/XamlBind/cs/xBindSampleModel/ColorToStringConverter.cs

我写的简单一点,主要给自己项目用的。

UWP brush的更多相关文章

  1. Customize Acrylic Brush in UWP Applications(在UWP中自定义亚克力笔刷)

    原文 Customize Acrylic Brush in UWP Applications(在UWP中自定义亚克力笔刷) Windows 10 Fall Creators Update(Build ...

  2. (UWP)通过编写算法实现在地图中的渐变路径

    目前的一个App中需要实现这个需求,但是在UWP自带的Bing Map中,绘制的MapPolyline的StrokeColor的类型是Windows.UI.Color,也就是说一条MapPolylin ...

  3. UWP中的Direct2D

    介绍 DirectX一直是Windows平台中高性能图形的代名词,自Win7开始,微软又推出了Direct2D技术,包装于Direct3D,但专注于2D图形,并且准备取代GDI这样的传统2D图形技术. ...

  4. UWP: 掌握编译型绑定 x:Bind

    在 UWP 开发中,我们在进行数据绑定时,除了可以使用传统的绑定 Binding,也可以使用全新的 x:Bind,由于后者是在程序编译时进行初始化操作(不同于 Binding,它是在运行时创建.初始化 ...

  5. [UWP]实用的Shape指南

    在UWP UI系统中,使用Shape是绘制2D图形最简单的方式,小到图标,大到图表都用到Shape的派生类,可以说有举足轻重的地位.幸运的是从Silverlight以来Shape基本没有什么大改动,简 ...

  6. [UWP]浅谈按钮设计

    一时兴起想谈谈UWP按钮的设计. 按钮是UI中最重要的元素之一,可能也是用得最多的交互元素.好的按钮设计可以有效提高用户体验,构造让人眼前一亮的UI.而且按钮通常不会影响布局,小小的按钮无论怎么改也不 ...

  7. UWP:使用Behavior实现Button点击动态效果

    废话不多说,先上效果 没有做成安卓那种圆形的原因是...人家真的不会嘛... 好了下面是正文: 首先在工程中引入Behavior的库,我们使用Nuget. 在项目->引用上点击右键,点击管理Nu ...

  8. [UWP]创建一个进度按钮

    1. 前言 最近想要一个进度按钮. 传统上UWP上处理进度可以这样实现,首先是XAML,包括一个ProgressBar和一个按钮: <StackPanel Orientation="H ...

  9. win10 uwp 进度条 WaveProgressControl

    昨天看到了有个大神做出好看的进度条样式,于是我就去抄袭他的代码,但是发现看不懂,于是本文主要翻译就是大神说这个控件如何做. 本文翻译 https://stackoverflow.com/a/46057 ...

随机推荐

  1. jmeter性能测试 套路二

    1.一般我们不会通过下面这种去跑性能测试 2.我们会通过这种方式去跑性能测试 3.录制自动化 就用新的 4.录制性能测试  就用

  2. JMockit使用总结

    Jmockit可以做什么 使用JMockit API来mock被依赖的代码,从而进行隔离测试. 类级别整体mock和部分方法重写 实例级别整体mock和部分mock mock静态方法.私有变量.局部方 ...

  3. cocos quick lua 输入框点击穿透的问题处理方案。

    条件:当前版本quick-3.3 -lua,系统 win7. 问题:在输入框(textField或者editbox,下文"输入框"就代表这两种)打开的情况下弹出其他界面盖住输入框, ...

  4. Opencv入门-第一回-梦牵机器视觉翼,初识Opencv域(安装Opencv)

    各位看官,您是不是瞅着Opencv进来的?(你这不是废话吗>_>) 这Opencv(开源计算机视觉库)啊,说来话长,最初是上个世纪末(1999年)由Intel建立起来的.近十多年人工智能这 ...

  5. 波涛1202wm8833 lihomme/历织造 2013秋装全新男装夹克 整身年龄外套潮流立领男士休闲外套薄_9才号

    波涛1202wm8833 lihomme/历织造 2013秋装全新男装夹克 整身年龄外套潮流立领男士休闲外套薄_9才号 波涛1202wm8833lihomme/历织造2013秋装全新男装夹克整身年龄外 ...

  6. React——from

    在React中HTML的from元素与其他的DOM元素有些不同.因为表单元素自然而然的会有一些内部状态 一.controlled components 在HTML中,像input,select,tex ...

  7. FFmpeg 常用命令收集

    FFmpeg 常用命令 合并视频 ffmpeg -i "KTDS-820A_FHD.mp4" -c copy -bsf:v h264_mp4toannexb -f mpegts i ...

  8. Alpha 版本测试和发布说明

    Alpha版本测试报告 一bug汇总 做题时答案是错的.(已修复) 每次生成的题目一样(已经修复) 计时没有显示即倒计时,难度不同的功能没有实现(打算修复) 没有导入试卷和错题功能(不打算修复) 二. ...

  9. C语言程序设计课程设计自查表格

    课程设计自查表格 序号 项目 完成与否(完成打勾) 1 格式是否符合标准(缩进是否规范) 2 是否模块化设计(使用函数分解系统功能) 3 函数名否易懂(不得使用f1(int a1,int a2)这样的 ...

  10. 【Beta阶段】计划安排

    一.新成员介绍 姓名    陈雄 学号    106 角色    前端 个人相片     二.完善功能 登录注册 记分板 排行榜 界面优化 三.新增功能 换肤(可以一试) 联网PK 分享邀请 四.团队 ...